트리거는 특정 테이블에 데이터를 삽입, 삭제, 수정할 때 실행을 유발하는 특수 저장 프로시저로, 데이터베이스 자체의 표준 기능보다 더 정교하고 복잡한 데이터 제어 기능을 가지고 있습니다.
다음과 같은 특징을 가지고 있습니다.
모니터링 위치: 일반적으로 테이블 이름
모니터링 이벤트: 업데이트/삭제/삽입
트리거 시간: 이후/ before
트리거 이벤트: 업데이트/삭제/삽입
직접 호출할 수 없으며 데이터베이스에 의해 능동적으로 실행됩니다.
예1:
테이블 탭1 만들기
DROP TABLE IF EXISTS tab1; CREATE TABLE tab1( tab1_id varchar(11) );
테이블 탭2 만들기
DROP TABLE IF EXISTS tab2; CREATE TABLE tab2( tab2_id varchar(11) );
트리거 만들기: t_afterinsert_on_tab1
함수: tab1 테이블에 레코드를 추가한 후 tab2 테이블에 레코드를 자동으로 추가
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1; CREATE TRIGGER t_afterinsert_on_tab1 AFTER INSERT ON tab1 FOR EACH ROW BEGIN insert into tab2(tab2_id) values(new.tab1_id); END;
테스트
INSERT INTO tab1(tab1_id) values('0001');
SELECT * FROM tab1; SELECT * FROM tab2;
example2:
트리거 생성: t_afterdelete_on_tab1
기능: tab1 테이블 레코드를 삭제한 후 tab2 테이블의 해당 레코드가 자동으로 삭제됩니다
DROP TRIGGER IF EXISTS t_afterdelete_on_tab1; CREATE TRIGGER t_afterdelete_on_tab1 AFTER DELETE ON tab1 FOR EACH ROW BEGIN delete from tab2 where tab2_id=old.tab1_id; END;
DELETE FROM tab1 WHERE tab1_id='0001';
SELECT * FROM tab1; SELECT * FROM tab2;
위 내용은 MySQL Advanced 8의 내용입니다. 트리거, 더 많은 관련 콘텐츠 PHP 중국어 웹사이트(www.php.cn)를 주목해주세요!