Dans PostgreSQL si j'ai besoin de renommer et de changer le type de données de la colonne, je devrais exécuter deux requêtes distinctes pour le faire.
Renommer:
ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>
et pour changer le type de colonne:
ALTER TABLE <tablename> ALTER COLUMN <columnname> <columntype>.
Mais existe-t-il un moyen de faire ces deux travaux avec une requête unique, comme dans la requête MySQL suivante:
ALTER TABLE <tableName> CHANGE COLUMN <oldcolumnname> <newcolumnname> <newtype>
Dans PostgreSQL, ALTER TABLE
peut prendre une série d’opérations. Alors:
ALTER TABLE <tablename> RENAME <oldcolumn> TO <newcolumn>;
ALTER TABLE <tablename> ALTER COLUMN <columnname> TYPE <newtype>;
est le même que
ALTER TABLE <tablename>
ALTER COLUMN <columnname> TYPE <newtype>
RENAME <oldcolumn> TO <newcolumn>;
Cependant ... pourquoi? Le nom renommé IIRC ne provoquera pas une analyse complète de la table. Il n’ya donc aucun avantage à se contenter de faire les deux instructions séparément, en une seule transaction. Quel problème essayez-vous réellement de résoudre avec cela?
PostgreSQL: Modifiez le nom de la colonne et le type de données de la table:
ALTER TABLE <TableName>
ALTER [ COLUMN ] column [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
RENAME [ COLUMN ] column TO new_column;
Voir ALTER TABLE
.