원본출처 : http://www.brasileiro.net/postgres/cookbook/view-one-recipe.adp?recipe_id=193
Submitted on: 04-24-2001
Description:
Make sure this semester doesn't overlap at all with any previously-entered semesters. Used in a CHECK clause for the table.
Code:
-- joel burton (jburton@scw.org)
-- public domain
CREATE FUNCTION "sem_nooverlap" (character varying,date,date) RETURNS boolean AS '
declare
mySemCode alias for $1;
myStart alias for $2;
myEnd alias for $3;
begin
RETURN ( not EXISTS
(SELECT * from tlkpSem where SemCode <> mySemCode AND
( myStart BETWEEN SemStart AND SemEnd
OR myEnd BETWEEN SemStart AND SemEnd ) )
);
END;' LANGUAGE 'plpgsql';
|