>  기사  >  데이터 베이스  >  MySQL Advanced 8 - 트리거 사용

MySQL Advanced 8 - 트리거 사용

黄舟
黄舟원래의
2016-12-29 16:42:471175검색

트리거는 특정 테이블에 데이터를 삽입, 삭제, 수정할 때 실행을 유발하는 특수 저장 프로시저로, 데이터베이스 자체의 표준 기능보다 더 정교하고 복잡한 데이터 제어 기능을 가지고 있습니다.

다음과 같은 특징을 가지고 있습니다.

모니터링 위치: 일반적으로 테이블 이름

모니터링 이벤트: 업데이트/삭제/삽입

트리거 시간: 이후/ 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)를 주목해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.