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.