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

问题描述 投票:0回答:3

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

ALTER TABLE tbl_name ALTER COLUMN col_name varchar (11);

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

sql postgresql psql alter-table alter-column
3个回答
389
投票

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

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

63
投票

如果数据已存在于列中,您应该执行以下操作:

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

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


14
投票

酷@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);

文档

干杯!!读简单写简单

© www.soinside.com 2019 - 2024. All rights reserved.