트리거는 특정 데이터 작업(삽입/업데이트/삭제)을 모니터링하고 관련 작업(삽입/업데이트/삭제)을 트리거할 수 있는 특수한 유형의 트랜잭션입니다.
다음 이벤트를 살펴보세요.
주문 및 재고 감소 논리 완성
o(gid,num) 값에 삽입 (2,3); // 명령문 삽입
업데이트 g set products_num = products_num - 3 where id = 2; 🎜>
이 두 논리는 전체로 간주할 수 있습니다. 즉, --->를 삽입하면 업데이트가 가능합니다.
트리거를 사용하면 위의 문제를 해결할 수 있습니다.
특정 테이블의 변경 사항을 모니터링하고 특정 변경 사항이 발생하면 작업을 트리거할 수 있습니다.
생성 구문 트리거
트리거 생성 TriggerName
테이블 이름 삽입/업데이트/삭제 후/전
각 행마다 #이 문장은 고정됨
시작
SQL 문; # 삽입/업데이트/삭제 범위 내의 하나 이상의 문장
End;
삭제 트리거 구문:
드롭 트리거 트리거 이름
트리거 보기
트리거 표시
값 참조 방법 트리거의 행
삽입의 경우 새 행은 new로 표시되고
행의 각 열 값은 new.column 이름으로 표시됩니다.
삭제의 경우 원래 삭제된 행이 있었습니다.
삭제된 행을 참조하려면 old를 사용하여 나타낼 수 있습니다. 삭제된 행 값.
업데이트의 경우
수정된 행,
수정 전 데이터, 이전, old.column 이름으로 표시 참조가 수정되기 전 행의 값
수정된 데이터는 new, new로 표현됩니다. 컬럼명은 수정 후 행의 값을 참조합니다
트리거의 이전과 이후의 차이점
트리거 이전에 데이터의 추가, 삭제, 수정을 완료한 후
트리거된 문은 다음과 같습니다. 모니터링 이후 추가, 삭제, 수정은 이전 추가, 삭제, 수정 작업에 영향을 미치지 않습니다.
Before는 트리거를 먼저 완료한 다음 추가, 삭제, 변경합니다.
트리거된 명령문이 모니터링된 명령문보다 앞에 추가, 삭제, 변경이 발생하면 향후 작업을 판단하고 수정할 수 있습니다.
일반적인 경우:
주문한 상품의 수량을 5개 이상으로 판단하는 경우
주문한 상품의 수량을 강제로 변경합니다. ~ 5
어떤 것이 트리거되는지 확인하세요: