postgresql: agregue una columna booleana al conjunto de tablas predeterminado

Resuelto 1252748 asked hace 12 años • 5 respuestas

¿Es esta la sintaxis adecuada de PostgreSQL para agregar una columna a una tabla con un valor predeterminado defalse

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

¡Gracias!

1252748 avatar Aug 13 '12 23:08 1252748
Aceptado
ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN DEFAULT FALSE;

También puedes especificar directamente NOT NULL

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

ACTUALIZACIÓN : lo siguiente solo es válido para versiones anteriores a postgresql 11.

Como Craig mencionó en las tablas llenas, es más eficiente dividirlo en pasos:

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;
Eelke avatar Aug 13 '2012 16:08 Eelke

Si quieres una columna booleana real:

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;
rfusca avatar Aug 13 '2012 16:08 rfusca

Solo para referencia futura, si ya tiene una columna booleana y solo desea agregar una predeterminada, haga lo siguiente:

ALTER TABLE users
  ALTER COLUMN priv_user SET DEFAULT false;
LondonRob avatar Aug 19 '2014 12:08 LondonRob