type tipo postgres float dato datatype data column booleano database postgresql

database - tipo - Postgres Alter Column Integer a Boolean



postgresql varchar datatype (2)

Tengo un campo INTEGER NOT NULL DEFAULT 0 y necesito cambiarlo a bool.

Esto es lo que estoy usando:

ALTER TABLE mytabe ALTER mycolumn TYPE bool USING CASE WHEN 0 THEN FALSE ELSE TRUE END;

Pero estoy obteniendo:

ERROR: argument of CASE/WHEN must be type boolean, not type integer ********** Error ********** ERROR: argument of CASE/WHEN must be type boolean, not type integer SQL state: 42804

¿Alguna idea?

Gracias.


Arriba La respuesta es correcta, me ayudó Solo una modificación en lugar de mayúsculas y minúsculas Utilicé el tipo de fundición

ALTER TABLE mytabe ALTER COLUMN mycolumn DROP DEFAULT; ALTER TABLE mytabe ALTER mycolumn TYPE bool USING mycolumn::boolean; ALTER TABLE mytabe ALTER COLUMN mycolumn SET DEFAULT FALSE;


Prueba esto:

ALTER TABLE mytabe ALTER COLUMN mycolumn DROP DEFAULT; ALTER TABLE mytabe ALTER mycolumn TYPE bool USING CASE WHEN mycolumn=0 THEN FALSE ELSE TRUE END; ALTER TABLE mytabe ALTER COLUMN mycolumn SET DEFAULT FALSE;

Primero debe eliminar la restricción (ya que no es booleana) y, en segundo lugar, su sentencia CASE fue sintácticamente incorrecta.