Hola, parece que no puedo obtener una restricción que funcione de la manera que espero en postgreSQL. Desde pgadmin ejecuto la siguiente consulta SQL.
-- Check: "TypeCheck"
-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";
ALTER TABLE "ComLog"
ADD CONSTRAINT "TypeCheck" CHECK ("Type" SIMILAR TO 'email|post|IRL|minutes');
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';
Cuando se ejecuta esto se convierte a.
-- Check: "TypeCheck"
-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";
ALTER TABLE "ComLog"
ADD CONSTRAINT "TypeCheck" CHECK ("Type" ~ similar_escape('email|post|IRL|minutes'::text, NULL::text));
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';
Espero que esto limite mi entrada para la columna Tipos a una de correo electrónico IRL o minutos. Sin embargo, al ingresar datos de la tabla, esta restricción falla cuando ingreso uno de estos tipos. La columna Tipos es de tipo de caracteres. Alguien sabe cómo arreglar esto. Gracias.
CHECK (type in ('email','post','IRL','minutes')
?