2014-12-01 2 views
0

에 나는 PostgreSQL의에서이 쿼리를 썼다 :PostgreSQL을 한 많은 트리거 절차

CREATE OR REPLACE FUNCTION pippo() RETURNS TRIGGER AS $$ 
BEGIN 
    CHECK (NOT EXISTS (SELECT * FROM padre WHERE cod_fis NOT IN (SELECT padre FROM paternita))); 
END; 
$$ LANGUAGE plpgsql; 

그것은 반환

구문 오류에서 또는 근처 CHECK.

2 개의 테이블 사이에 1..n 링크가 있어야하기 때문에이 코드를 작성했습니다.

+0

원하는 기능 결과는 무엇입니까? – Andreas

+0

@ Andreas : 어쩌면 구문 오류가 어디에 있는지 알려주는 것으로 시작할 수 있습니다. –

+0

테이블 구조 및 일부 샘플 레코드를 게시 할 수 있습니까? 당신이하려고하는 것을보기가 어렵습니다. – mlinth

답변

1

여기에서는 CHECK를 사용할 수 없습니다. CHECK는 테이블 및 컬럼 제약 조건을 나타냅니다.

두 더 노트 :

  • 이가 문 수준의 제약 조건 트리거가 될 것으로 예상되는 경우에, 나는 당신이 실제로 그렇지 않은 경우, 확장하고 명확하게 할 수 있습니다 (IF ... THEN RAISE EXCEPTION 'message'; END IF;
    을 찾고 같은데요
  • 함수는 NEW, OLD 또는 NULL을 반환해야합니다.