FOREIGN KEY 를 명시하면 참조하는 테이블에 있는 값만 가능하게 된다.
여기까지만 알고있었다.
자료변경(UPDATE/DELETE) 시에 무식하게 일일이 수정하는 만행을 저지르곤 했다.
ON 이라는 키워드가 존재할 줄이야.

 FOREIGN KEY(fStoreId,fSerial) REFERENCES TBLREQUEST(fStoreId,fSerial)
   ON UPDATE CASCADE
   ON DELETE NO ACTION

첫줄은 이미 알던 개념이었다.
ON UPDATE: 업데이트 시
ON DELETE: 삭제 시

CASCADE 의 사전 의미는 "[컴퓨터] 층계형" 이다.
TBLREQUEST 의 각 키가 변경이 되면 FOREIGN KEY 로 연결되어있는 모든 것에 대하여
단계별로 변경사항을 적용시킨다.
많은 외부키 참조가 되어있는 경우 참조 수 만큼 행해줘야 했던 처리를
원 자료에 대해 적용하면 자동으로 처리가 된다. 좋다.

NO ACTION 은 아무 일도 하지 말라는 것이다.
이렇게 하면 참조된 자료를 다 삭제하기 전에는 제약조건에 의해 삭제가 불가능 해진다.

'Windows > Database' 카테고리의 다른 글

[SQL] 테이블간 자료 이동간 데이터 명시  (0) 2007.06.01
[SQL] UNION  (0) 2007.05.19

+ Recent posts