postgresql - add boolean column to table set default

后端 未结 5 450
感情败类
感情败类 2021-01-30 03:02

Is this proper postgresql syntax to add a column to a table with a default value of false

ALTER TABLE users
ADD \"priv_user\" BIT
ALTER priv_user SE         


        
5条回答
  •  面向向阳花
    2021-01-30 03:13

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

    you can also directly specify NOT NULL

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

    UPDATE: following is only true for versions before postgresql 11.

    As Craig mentioned on filled tables it is more efficient to split it into steps:

    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;
    

提交回复
热议问题