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

slwdgvem  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(3)|浏览(132)

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

ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);

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

7qhs6swi

7qhs6swi1#

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

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

rkue9o1l2#

如果列中已经存在数据,则应执行以下操作:

ALTER TABLE tbl_name ALTER COLUMN col_name TYPE integer USING (NULLIF(col_name, '')::integer);

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

iaqfqrcu

iaqfqrcu3#

酷@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
Cheers!!Read Simple Write Simple

相关问题