229

这是正确的 postgresql 语法,可以将列添加到默认值为false

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

谢谢!

4

5 回答 5

414
ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN DEFAULT FALSE;

你也可以直接指定NOT NULL

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

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

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

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;
于 2012-08-13T16:54:05.923 回答
21

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

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;
于 2012-08-13T16:51:48.940 回答
17

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

ALTER TABLE users
  ALTER COLUMN priv_user SET DEFAULT false;
于 2014-08-19T12:40:17.257 回答
6

如果您使用的是 postgresql,那么您必须使用小写的列类型 BOOLEAN 作为布尔值。

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;

于 2013-01-01T09:19:13.200 回答
6

在 psql 中改变列查询语法是这样的

Alter table users add column priv_user boolean default false ;

布尔值(true-false)像(tf) value一样保存在 DB 中。

于 2017-03-08T05:52:31.890 回答