postgresql: agregue una columna booleana al conjunto de tablas predeterminado
¿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!
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;
Si quieres una columna booleana real:
ALTER TABLE users ADD "priv_user" boolean DEFAULT false;
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;