ALTER TABLE,在非空列中设置空,PostgreSQL 9.1

Posted

技术标签:

【中文标题】ALTER TABLE,在非空列中设置空,PostgreSQL 9.1【英文标题】:ALTER TABLE, set null in not null column, PostgreSQL 9.1 【发布时间】:2012-11-18 14:10:18 【问题描述】:

我有一个非空列的表,如何在该列中设置一个空值作为默认值?

我的意思是,我想做这样的事情:

postgres=# ALTER TABLE person ALTER COLUMN phone SET NULL;

但它显示:

postgres=# ALTER TABLE person ALTER COLUMN phone SET NULL;
ERROR:  syntax error at or near "NULL"
LINE 1: ALTER TABLE person ALTER COLUMN phone SET NULL;

【问题讨论】:

How to change a PG column to NULLABLE TRUE?的可能重复 【参考方案1】:
ALTER TABLE person ALTER COLUMN phone DROP NOT NULL;

手册中的更多详细信息:http://www.postgresql.org/docs/9.1/static/sql-altertable.html

【讨论】:

【参考方案2】:

以这种格式执行命令

ALTER TABLE tablename ALTER COLUMN columnname SET NOT NULL;

用于将列设置为不为空。

【讨论】:

列名不能用单引号引起来 这对我有帮助,尽管它没有回答问题。【参考方案3】:

以这种格式执行命令:ALTER [ COLUMN ] column SET | DROP NOT NULL

【讨论】:

【参考方案4】:
First, Set :
ALTER TABLE person ALTER COLUMN phone DROP NOT NULL;

【讨论】:

来到这里搜索如何将列设置为 NOT NULL。有了你的回答,我可以想出解决方案:ALTER TABLE person ALTER COLUMN phone SET NOT NULL。谢谢!

以上是关于ALTER TABLE,在非空列中设置空,PostgreSQL 9.1的主要内容,如果未能解决你的问题,请参考以下文章

仅在非空列上的 case 语句

如何使用 MYSQL 中的连接从多个表中获取多个列并在非空列上显示数据以及在空列上显示 null 或零

EF数据库优先方法如何将新的非空列添加到生产表并在代码级别进行管理

左连接 ON 非空列不能选择非空列

如何根据另一列的值创建空列或非空列?

在一列中获取火花数据帧的所有非空列