Postgresql:如何更改表定义

时间:2012-11-06 14:44:19

标签: mysql postgresql

问题:我正在寻找替代解决方案来更改postgresql中的列定义。

我想做一些类似于mysql解决方案的事情:

ALTER TABLE table_name 
CHANGE [COLUMN] old_col_name new_col_name column_definition 

有没有办法使用类似于我之前描述的 CHANGE COLUMN ?有没有办法轻松更改postgres中的列定义?

我想在我的示例中使用类似的方法,因为我正在从代码构建alter查询。

1 个答案:

答案 0 :(得分:1)

在PostgreSQL中没有直接等同于MySQL的CHANGE COLUMN子句。您需要逐个指定列定义部分。请参阅ALTER TABLE的文档。幸运的是,在典型情况下,您不需要检测旧定义和新定义之间的差异,如果更改是冗余的,PostgreSQL将忽略它。例如,当列已经可以为空时,ALTER COLUMN x DROP NOT NULL仍然有用。