Oracle déplacer la colonne vers la première position
est-il possible de déplacer une colonne dans une table oracle à partir de la dernière à la première position? Quelqu'un a laissé tomber la colonne ID, et recréée. Alors maintenant, c'est à la fin, ce qui est un problème parce que certains de nos Scripts PHP sont à l'aide de la première colonne comme identificateur (un Modèle Abstrait avec plus de 100 Modèles à l'aide de cet objet de base..)
Voir aussi
Dupliquer: stackoverflow.com/questions/578957/...
Vous pouvez sélectionner les colonnes que vous avez besoin, au lieu de *.
Il a expliqué la nécessité pour cette solution de contournement...
Ouais changeant les Modèles serait beaucoup de travail. Mais cela pourrait suppression et recréation de la table. Puis, de nouveau, si quelqu'un pouvait tomber à la colonne ID de la base de données n'a sans doute pas compter sur les relations de clé étrangère.
Cela souligne l'une des raisons (de plusieurs) pourquoi vous n'utilisez jamais SELECT * dans le code de production. Les scripts PHP devrait spécifier les colonnes qui les intéresse.
Vous pouvez sélectionner les colonnes que vous avez besoin, au lieu de *.
Il a expliqué la nécessité pour cette solution de contournement...
Ouais changeant les Modèles serait beaucoup de travail. Mais cela pourrait suppression et recréation de la table. Puis, de nouveau, si quelqu'un pouvait tomber à la colonne ID de la base de données n'a sans doute pas compter sur les relations de clé étrangère.
Cela souligne l'une des raisons (de plusieurs) pourquoi vous n'utilisez jamais SELECT * dans le code de production. Les scripts PHP devrait spécifier les colonnes qui les intéresse.
OriginalL'auteur opHASnoNAME | 2009-12-01
Vous devez vous connecter pour publier un commentaire.
La Oracle FAQ dit:
Vous devez recréer votre table.
varchar2(20)
et max de la longueur de la colonne était de 5, la nouvelle colonne de table avaitvarchar2(5)
.OriginalL'auteur nickf
la façon la plus simple de modifier l'ordre logique des colonnes d'une table est de renommer votre table et créer une vue avec le "droit" de la colonne de positions:
Votre application se comporte comme si les colonnes ont été dans la "bonne" position. Vous n'avez pas à toucher à la structure physique.
OriginalL'auteur Vincent Malgrat
Dans Oracle 12c, il est maintenant plus facile pour réorganiser les colonnes logiquement. Elle peut être réalisée en faisant colonne invisible/visible.Si vous modifiez une colonne invisible au visible , la colonne apparaît en dernier dans la odering.
Envisager D'Utiliser Des Colonnes Invisibles
Créer wxyz table:
CREATE TABLE t (
w INT,
y VARCHAR2,
z VARCHAR2,
x VARCHAR2
);
réorganiser le x de la colonne du milieu:
ALTER TABLE wxyz MODIFIER (y INVISIBLES, z INVISIBLE);
ALTER TABLE wxyz MODIFIER (y VISIBLE, z VISIBLE);
DÉCRIRE wxyz;
Nom
w
x
y
z
OriginalL'auteur Sulaha
De recréer la table (via renommer/table temporaire de sorte que vous ne perdez pas vos données) est la seule façon que je connaisse.
Je ne crois pas qu'il est possible de simplement changer l'ordre des colonnes.
OriginalL'auteur cagcowboy
Si il n'y a pas une tonne de données/les colonnes, vous pouvez simplement renommer les colonnes dans l'ordre que vous voulez. Ensuite, il suffit de supprimer * from 'le nom de votre table ici". C'était une bonne solution pour moi car je n'avais pas inséré de nombreux records encore.
OriginalL'auteur
Vous pouvez accéder à votre table via un point de vue, de sorte que vous pouvez sans douleur réorganiser l'ordre logique si c'est important pour l'application de la technologie.
OriginalL'auteur David Aldridge
Pas possible de déplacer la colonne dans oracle. Il sera créé dans la dernière position. Si quelqu'un voulait donc soit à la vue doit être créé ou nouveau tableau doivent être créés
OriginalL'auteur Samrat Mondal
J'en utilise tout le temps:
ALTER TABLE table_name MOVE COLUMN column_name TO ordinal_position;
. Je suis en utilisantOracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
OriginalL'auteur user2161700