2017-12-01 4 views
1

에서 트리거되는 Postgres에 제약 조건이 필요합니다. INSERT queriesonly (UPDATE 쿼리가 아님).Postgres : INSERT에 대해서만 점검하는 제약

는 현재는이 방법으로 구현됩니다 check_something

CREATE OR REPLACE FUNCTION check_something(UUID, UUID) 
RETURNS BOOLEAN AS $$ 
DECLARE 
existed_id UUID; 
BEGIN 
SELECT id 
INTO existed_id 
FROM test WHERE ...etc. 
RETURN existed_id IS NULL 
END; 
$$ LANGUAGE 'plpgsql' VOLATILE; 

그리고 현재 check_something_const 갱신에 쿼리를 삽입 모두 트리거

ALTER TABLE test ADD CONSTRAINT check_something_const 
CHECK (check_something(id, task_id)) NOT VALID; 

. 새 행을 삽입했지만 업데이트하지 않을 때 에만을 확인해야합니다.

+1

삽입 트리거 –

+3

이 필요합니다. 삽입 트리거 이전/이후에 사용할 수 있습니다. https://www.postgresql.org/docs/9.1/static/sql-createtrigger.html – swd

답변

0

삽입시에만 트리거하는 트리거 절차를 통해이 작업을 수행 할 수 있습니다.