postgresql - add boolean column to table set default

后端 未结 5 440
感情败类
感情败类 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:09

    If you want an actual boolean column:

    ALTER TABLE users ADD "priv_user" boolean DEFAULT false;
    
    0 讨论(0)
  • 2021-01-30 03:11

    If you are using postgresql then you have to use column type BOOLEAN in lower case as boolean.

    ALTER TABLE users ADD "priv_user" boolean DEFAULT false;

    0 讨论(0)
  • 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;
    
    0 讨论(0)
  • 2021-01-30 03:14

    In psql alter column query syntax like this

    Alter table users add column priv_user boolean default false ;
    

    boolean value (true-false) save in DB like (t-f) value .

    0 讨论(0)
  • 2021-01-30 03:18

    Just for future reference, if you already have a boolean column and you just want to add a default do:

    ALTER TABLE users
      ALTER COLUMN priv_user SET DEFAULT false;
    
    0 讨论(0)
提交回复
热议问题