테이블 외래 키 속성에 삽입 된 데이터가 실제로 참조 테이블에 있는지 확인하는 트리거를 지정하는 방법. 존재하는 경우 어떤 조치도 수행되어서는 안됩니다. 그렇지 않으면 트리거는 삽입 된 튜플을 삭제해야합니다.트리거를 사용하여 외래 키 제약 조건이있는 속성에서 유효하지 않은 데이터를 중지 하시겠습니까?
예 : 2 개의 테이블 R (A int Primary Key) 및 S (B int 기본 키, A 외부 키 참조 R (A))가 있다고 가정합니다. 나는이 같은 트리거를 작성했습니다
는 :
Create Trigger DelS
BEFORE INSERT ON S
FOR EACH ROW
BEGIN
Delete FROM S where New.A <> (Select * from R;));
End;
나는 트리거의 시작과 끝 블록 내에서 내부 하위 쿼리를 지정하는 동안 내가 실수를하고 확신합니다. 내 질문은 어떻게 그런 방아쇠를 당기는거야?
http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html –