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

Bri*_*own 78 postgresql null postgresql-9.1

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

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

postgres=# ALTER TABLE person ALTER COLUMN phone SET NULL;
Run Code Online (Sandbox Code Playgroud)

但它显示:

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;
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 167

ALTER TABLE person ALTER COLUMN phone DROP NOT NULL;
Run Code Online (Sandbox Code Playgroud)

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


Rig*_*men 24

以此格式执行命令

ALTER TABLE tablename ALTER COLUMN columnname SET NOT NULL;
Run Code Online (Sandbox Code Playgroud)

用于将列设置为非null.

  • 列名不能用单引号括起来 (6认同)
  • 这对我有帮助,尽管它没有回答这个问题. (3认同)

jai*_*444 13

First, Set :
ALTER TABLE person ALTER COLUMN phone DROP NOT NULL;
Run Code Online (Sandbox Code Playgroud)

  • 来这里搜索如何将列设置为NOT NULL.有了你的答案,我可以找到解决方案:`ALTER TABLE person ALTER COLUMN phone SET NOT NULL`.谢谢! (9认同)

小智 5

以这种格式执行命令:

ALTER [ COLUMN ] column { SET | DROP } NOT NULL