这是正确的postgresql语法添加一个列到一个表的默认值为false

ALTER TABLE users
ADD "priv_user" BIT
ALTER priv_user SET DEFAULT '0'

谢谢!


当前回答

如果你正在使用postgresql,那么你必须使用列类型BOOLEAN的小写布尔。

添加"priv_user" boolean值为false;

其他回答

只是为了将来参考,如果你已经有一个布尔列,你只是想添加一个默认的do:

ALTER TABLE users
  ALTER COLUMN priv_user SET DEFAULT false;
ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN DEFAULT FALSE;

你也可以直接指定NOT NULL

ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN NOT NULL DEFAULT FALSE;

UPDATE:以下仅适用于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;

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

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;

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

Alter table users add column priv_user boolean default false ;

布尔值(true-false)保存在DB像(t-f)值。

如果你正在使用postgresql,那么你必须使用列类型BOOLEAN的小写布尔。

添加"priv_user" boolean值为false;