postgresql - 将boolean列添加到表集默认值

125*_*748 144 sql postgresql

这是一个适当的postgresql语法,用于向表中添加一个默认值为的列 false

ALTER TABLE users
ADD "priv_user" BIT
ALTER priv_user SET DEFAULT '0'
Run Code Online (Sandbox Code Playgroud)

谢谢!

Eel*_*lke 256

ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN DEFAULT FALSE;
Run Code Online (Sandbox Code Playgroud)

你也可以直接指定NOT NULL

ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN NOT NULL DEFAULT FALSE;
Run Code Online (Sandbox Code Playgroud)

更新:以下仅适用于postgresql 11之前的版本.

正如Craig在填充表中提到的那样,将它分成几个步骤会更有效:

ALTER TABLE users ADD COLUMN priv_user BOOLEAN;
UPDATE users SET priv_user = 'f';
ALTER TABLE users ALTER COLUMN priv_user SET NOT NULL;
ALTER TABLE users ALTER COLUMN priv_user SET DEFAULT FALSE;
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果您的表很大,这可能需要很长时间并在整个时间内锁定表.将它拆分为步骤更快:添加列没有默认值`ALTER TABLE users ADD COLUMN priv_user BOOLEAN;`,然后`UPDATE用户SET priv_user ='f';`最后如果你需要`ALTER TABLE users ALTER COLUMN priv_user SET NOT NULL;`. (25认同)

rfu*_*sca 16

如果你想要一个实际的布尔列:

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;
Run Code Online (Sandbox Code Playgroud)


Lon*_*Rob 13

仅供将来参考,如果您已经有一个布尔列,并且您只想添加默认值:

ALTER TABLE users
  ALTER COLUMN priv_user SET DEFAULT false;
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您使用的是postgresql,则必须使用小写的BOOLEAN列作为布尔值.

ALTER TABLE用户ADD"priv_user"boolean DEFAULT false;


小智 5

在 psql 中,像这样更改列查询语法

Alter table users add column priv_user boolean default false ;
Run Code Online (Sandbox Code Playgroud)

布尔值(true-false)保存在数据库中,如(tf) value 。