如何在PostgreSQL表中更改列的数据类型?

时间:2011-08-23 14:45:19

标签: sql postgresql psql alter-table alter-column

在PostgreSQL交互式终端中输入以下命令会导致错误:

ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);

更改列的数据类型的正确命令是什么?

3 个答案:

答案 0 :(得分:126)

请参阅此处的文档:http://www.postgresql.org/docs/current/interactive/sql-altertable.html

ALTER TABLE tbl_name ALTER COLUMN col_name TYPE varchar (11);

答案 1 :(得分:7)

如果列中已经存在数据,您应该这样做:

ALTER TABLE tbl_name ALTER COLUMN col_name TYPE integer USING col_name::integer;

正如@nobu 和@jonathan-porter 在对@derek-kromm 的回答的评论中所指出的,有点神秘。

答案 2 :(得分:3)

酷@derek-kromm,您的回答已被接受且正确,但我想知道我们是否需要alter 多于列。这是我们可以做的。

ALTER TABLE tbl_name 
ALTER COLUMN col_name TYPE varchar (11), 
ALTER COLUMN col_name2 TYPE varchar (11),
ALTER COLUMN col_name3 TYPE varchar (11);

Documentation

干杯!!读简单写简单