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;

NOTNULLを直接指定することもできます

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

更新:以下はpostgresql11より前のバージョンにのみ当てはまります。

塗りつぶされたテーブルで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;
于 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を使用する必要があります。

ALTERTABLEユーザー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)値のようにDBに保存します。

于 2017-03-08T05:52:31.890 に答える