MySQL Advanced 8 - 트리거 사용

黄舟
풀어 주다: 2016-12-29 16:42:47
원래의
1126명이 탐색했습니다.

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

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

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

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

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


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!