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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MYSQL 中的连接从多个表中获取多个列并在非空列上显示数据以及在空列上显示 null 或零