Procedury składowane w PostgreSQL/Ograniczenia sprawdzające
Procedury składowane mogą być bez przeszkód używane w ograniczeniach sprawdzających (CHECK), zarówno w tabelach, jak i dziedzinach. Należy jedynie pamiętać, że typem wartości wyrażenia w CHECK musi być typ logiczny, więc jeśli używana będzie tylko funkcja, to musi ten typ zwracać.
Dopuszczalne są dowolne funkcje, nawet takie, które modyfikują dane.
Przykład
edytujCREATE FUNCTION sprawdz_napis(napis text, min_dlugosc integer) RETURNS boolean AS $$
BEGIN
RAISE NOTICE '%, %', min_dlugosc, napis;
IF napis IS NULL THEN
-- pusty napis
RETURN false;
ELSIF length(napis) < min_dlugosc THEN
-- za krótki
RETURN false;
ELSE
RETURN true;
END IF;
END;
$$ LANGUAGE 'plpgsql' IMMUTABLE;
CREATE TABLE tabela (
-- ...
dlugosc integer,
napis text CHECK(sprawdz_napis(napis, dlugosc))
-- ...
);