web-dev-qa-db-fra.com

postgresql - ajoute une colonne booléenne au jeu de tables par défaut

Est-ce que cette syntaxe postgresql convient pour ajouter une colonne à une table avec la valeur par défaut de false

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

Merci!

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

vous pouvez aussi spécifier directement NOT NULL

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

UPDATE: ce qui suit n’est vrai que pour les versions antérieures à postgresql 11.

Comme Craig l'a mentionné sur les tables remplies, il est plus efficace de le scinder en étapes:

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

Si vous voulez une colonne booléenne réelle:

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

Juste pour référence future, si vous déjà avez une colonne booléenne et que vous voulez juste ajouter un do par défaut:

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

Si vous utilisez postgresql, vous devez utiliser le type de colonne BOOLEAN en minuscule comme booléen.

ALTER TABLE utilisateurs ADD "priv_user" boolean DEFAULT false;

5
Faisal Chohan

Dans psql, modifiez la syntaxe de requête de colonne comme ceci

Alter table users add column priv_user boolean default false ;

valeur booléenne (true-false) enregistrer dans le DB comme (t-f) valeur.

3
Meet Patel