Salut, je n'arrive pas à obtenir une contrainte fonctionnant comme je m'y attend dans postgreSQL. Depuis pgadmin, j'exécute la requête SQL suivante.
-- 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';
Une fois exécuté, il est converti en.
-- 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';
Je m'attends à ce que cela limite mon entrée pour la colonne Types à l'un des messages électroniques IRL ou minutes. Cependant, lors de la saisie de données de table, cette contrainte échoue lorsque j'entre l'un de ces types. La colonne Types est de type caractère. Est-ce que quelqu'un sait comment réparer ceci. Merci.
CHECK (type in ('email','post','IRL','minutes')
?