Wie ändere ich den Datentyp einer Spalte in einer PostgreSQL-Tabelle?

102

Die Eingabe des folgenden Befehls in ein interaktives PostgreSQL-Terminal führt zu einem Fehler:

ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);

Was ist der richtige Befehl, um den Datentyp einer Spalte zu ändern?

kn3l
quelle

Antworten:

167

Siehe Dokumentation hier: http://www.postgresql.org/docs/current/interactive/sql-altertable.html

ALTER TABLE tbl_name ALTER COLUMN col_name TYPE varchar (11);
Derek Kromm
quelle
27
In einigen anderen Fällen müssen Sie möglicherweise die Art der Besetzung angeben, wieALTER TABLE tbl_name ALTER COLUMN col_name TYPE integer USING col_name::integer;
Nobu
3
@Nobu warum müssen wir das machen some casesund was sind diese Fälle?
Darth.Vader
2
@ Darth.Vader Möglicherweise müssen Sie dies tun, wenn in der Spalte bereits Daten vorhanden sind, die nicht automatisch umgewandelt werden können.
Jonathan Porter