Si j'ai une table avec les colonnes:
id | name | created_date
et voudrais ajouter une colonne, j'utilise:
alter table my_table add column email varchar(255)
Ensuite, la colonne est ajoutée après la created_date
colonne.
Est-il possible de spécifier la position de la nouvelle colonne? par exemple pour que je puisse l'ajouter après name
et obtenir un tableau du type:
id | name | email | created_date
view
émission correspondante dans cet ordre ... techniquement, la position de la colonne ne devrait pas avoir d'importance, car vous pouvez les définir dans n'importe quel ordre dans une requête ... et vous ne devriez généralement pas faire deselect *
psql -E
commutateur pour afficher la requête réelle)Réponses:
ALTER TABLE ADD COLUMN
ajoutera seulement la nouvelle colonne à la fin, en tant que dernière. Afin de créer une nouvelle colonne dans une autre position, vous devez recréer la table et copier les données de l'ancienne table / actuelle dans cette nouvelle table.la source
Vous devrez recréer la table si vous souhaitez un certain ordre. Faites juste quelque chose comme:
Créez des index selon vos besoins, etc.
la source
Si vous ne voulez que cela pour l'apparence, il est plus facile de garder une vue pour chaque table avec l'ordre souhaité des colonnes et de la sélectionner à la place de la table.
Pour tous les autres objectifs (comme insérer, union), il est préférable de toujours spécifier la liste des colonnes.
la source