Cześć Nie mogę uzyskać ograniczenia działającego tak, jak się spodziewam w postgreSQL. Z poziomu pgadmin wykonuję następujące zapytanie 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';
Po wykonaniu jest to konwertowane na.
-- 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';
Oczekuję, że ograniczy to mój wkład do kolumny Typy do jednego z IRL postu e-mail lub minut. Jednak podczas wprowadzania danych tabeli to ograniczenie nie działa, gdy wprowadzam jeden z tych typów. Kolumna Typy ma charakter znakowy. Czy ktoś wie, jak to naprawić. Dzięki.
CHECK (type in ('email','post','IRL','minutes')
?