database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3776 게시물 읽기
No. 3776
트리거 실행 순서에 대해서좀 알려주세요.
작성자
손님
작성일
2007-09-23 12:34
조회수
3,358

안녕하세요. 다름이 아니라 트리거를 알게되어 적용을 했는데 생각했던 대로 작동이 안되서요.


트리거1 = 테이블A, 트리거2 = 테이블B, 트리거3 = 테이블C, 테이블D


라고 예를 들면 테이블A,B,C에 각각 삭제트리거를 적용했습니다..


테이블A에 행이 삭제되면 테이블B의 트리거1이 작동하여 테이블B의 행이 삭제되게 했습니다.(테이블 B의 경우 여러

행이 존재할 수 있고요)


그리고 테이블B의 행이 삭제되면 트리거2가 실행되어 테이블C의 행이 삭제되고 테이블C가 삭제되면 트리거3이 작동

하여 테이블D의 데이터를 삭제하게 해놓았습니다.


이렇게 했을때 예상했던건 결과적으로 테이블A의 행이 삭제되면 A에 대당하는 B,C,D 테이블의 데이터가 삭제되리라

생각을 했습니다만......-_-;; 결과적으로는 트리거3가 작동을 안하더군요...


-- 생각했던 원리 ----------------------------------------------------------------------------------------

프로시져로 테이블 A의 행을 삭제한다 > 트리거1 작동 (여기에는 테이블B 행 삭제부분이 들어감) >

테이블B행 삭제 > 트리거2 작동 (여기에는 테이블C 행 삭제부분이 들어감) >

테이블C의 행이 삭제된다 > 트리거3 작동 > 테이블 D의 행이 삭제된다. 끝.....

--------------------------------------------------------------------------------------------------------


실행은 오류없이 정상작동하는데 테이블C부터 삭제됐어야할 데이터가 존재하더라구요..


원리대로 작동하게 할려면 어떤식으로 트리거를 작성해야되는지 고수님들의 조언 부탁드려요.ㅠ.ㅠ

이 글에 대한 댓글이 총 1건 있습니다.
결과를 가지고 추측을 해보면 트리거에 의해 삭제되는 데이터에 대한 트리거는 실행이 않됐다는 거네요

트리거1 에는 테이블A에서 삭제되는 행과 관련된 테이블B, 테이블C, 테이블D 의 자료를 삭제하는 루틴을 모두 넣어 주세요

트리거2에는 테이블B에서 삭제되는 행과 관련된 테이블C, 테이블D 의 자료를 삭제하는 루틴을 모두 넣어 주시고

트리거3에는 테이블C에서 삭제되는 행과 관련된 테이블D 의 자료를 삭제하는 루틴을 넣어 주시고

그리고... 트리거2에서는 테이블B에서 삭제되는 행과 관련된 테이블A의 자료가 있는 경우 테이블A도 지울건지 아니면 삭제 못하게 막을 건지 결정해서 트리거에 반영하셔야 겠네요

트리거3 역시 테이블C에서 삭제되는 행과 관련된 테이블A, B의 자료가 있는 경우에 대한 처리를 해주셔야 하고

테이블D 의 자료가 삭제될 경우 관련되는 테이블 A,B,C 자료가 있는 경우에 대한 처리도 생각을 해야 겠네요

**********************************************************************
Eurek™                                             NateOn, MSN : a3sd
임명순(Eurek)님이 2007-09-26 12:23에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3779substring 에서요... [1]
Julia M. An
2007-09-28
3160
3778Trigger를 잠시 작동하지 않게 할 수 있나요?! [2]
이정훈
2007-09-28
2430
3777ms sql 2005질문드립니다. [1]
최진섭
2007-09-27
2559
3776트리거 실행 순서에 대해서좀 알려주세요. [1]
손님
2007-09-23
3358
3775중복 행이 있을 경우 하나의 행으로 합치는.... [2]
sqluser
2007-09-22
2836
3774MSSQL 이파일에 정체를 알려주세요~! 고수님에 답변 부탁드립니다. [1]
진퇴양난
2007-09-21
3018
3773트랜잭션이 제대로 수행이 안되는 경우
2007-09-21
2302
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다