wake-up-neo.com

postgresql - fügt eine boolesche Spalte zur Standardeinstellung des Tabellensatzes hinzu

Handelt es sich um die richtige postgresql-Syntax zum Hinzufügen einer Spalte zu einer Tabelle mit dem Standardwert false

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

Vielen Dank!

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

sie können auch direkt NOT NULL angeben

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

UPDATE : Das Folgende gilt nur für Versionen vor postgresql 11.

Wie Craig auf gefüllten Tabellen erwähnt hat, ist es effizienter, es in Schritte aufzuteilen:

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;
249
Eelke

Wenn Sie eine tatsächliche boolesche Spalte wünschen:

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;
16
rfusca

Nur zum späteren Nachschlagen, wenn Sie bereits eine Boolesche Spalte haben und nur einen Standard hinzufügen möchten, tun Sie Folgendes:

ALTER TABLE users
  ALTER COLUMN priv_user SET DEFAULT false;
13
LondonRob

Wenn Sie postgresql verwenden, müssen Sie den Spaltentyp BOOLEAN in Kleinbuchstaben als Booleschen Wert verwenden.

ALTER TABLE Benutzer ADD "priv_user" boolean DEFAULT false;

5
Faisal Chohan

Ändern Sie in psql die Spaltenabfragesyntax wie folgt

Alter table users add column priv_user boolean default false ;

boolescher Wert (true-false) In DB speichern wie (t-f) Wert.

3
Meet Patel