Avec les articles, jai decouvert les fonctions en SQL.
Jai ecrit ca
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| CREATE OR REPLACE FUNCTION shall_we_insert(a_ integer, b_ integer)
RETURNS boolean AS
$BODY$
DECLARE
obj testtable%ROWTYPE;
BEGIN
FOR obj IN SELECT * FROM testtable
LOOP
IF a_ <= obj.b AND obj.a <= a_ THEN
RETURN FALSE;
END IF;
IF b_ <= obj.b AND obj.a <= b_ THEN
RETURN FALSE;
END IF;
END LOOP;
RETURN TRUE;
END
$BODY$
LANGUAGE plpgsql VOLATILE; |
CONSTRAINT test_overlap CHECK (shall_we_insert(a, b))
Et ca marche bien.
Si ya une meilleure maniere de faire, je suis preneur
Partager