복합 트리거 사용에 관한 매우 빠른 질문이 있습니다.오라클 11g 화합물 트리거 응용 프로그램
나는 데이터베이스/SQL/오라클에 아주 새로운 해요 다음에 대한 트리거를 만들 수있는 내가 있었다 유니 작업이 있습니다 판매 사람이 순서를 만들 때
- 로그 테이블에 삽입을
- 주문 테이블 업데이트 주문 준비 완료 (로그에 삽입)
- 오전 9시 월요일부터 오전 9 시까 지, INSERT, UPDATE, DELETE를 방지하십시오.
나는 트리거를 성공적으로 구현했지만 11g에서 복합 트리거를 인식하게되었습니다. 위의 내용을 하나의 복잡한 트리거로 결합하는 것이 적절한 지 알아볼 수 있습니까? 그것이 그들이 무엇을위한 것입니까, 아니면 제가 그 요점을 놓치고 있습니까?
다소 모호한 질문에 많은 감사드립니다.
나는 (물론 이것은 유니 프로젝트이며 항상 거대한 데이터베이스의 기능을 압박한다고 들었습니다. 트리거/테이블/튜플의 질량) 로그 테이블 (트리거 1 및 2)에 삽입하기 전에 compute 트리거를 사용하여 datetime (트리거 3)을 확인하는 것은 정확하지 않습니까? –
정답은 정의하기 힘든 것이지만, 개인적으로는 실제로는 필요없는 모든 트리거 포인트 때문에 개인적으로 그렇게하고 싶지 않습니다. 나는 1과 2가 AFTER INSERT 행 트리거가되고, 3은 BEFORE INSERT, UPDATE, DELETE 문 트리거가 될 것이라고 가정합니다. 그것을 보면, 나는 어쨌든 트리거에서 2와 3을하는 것에 신경을 쓰지 않을 것이다. - 트리거의 첫 번째 규칙 (물론, 좋다. * MY * 트리거의 첫 번째 규칙)은 "당신은 트리거에 비즈니스 로직을 구현하지 말라. 이것은 강 광증 위의 언덕에 미끄러운 경사입니다! ". YMMV. –