>  기사  >  데이터 베이스  >  mysql에서 트리거를 생성하는 방법

mysql에서 트리거를 생성하는 방법

清浅
清浅원래의
2019-04-28 14:59:176747검색

MySQL에서 트리거를 생성하려면 먼저 트리거에 저장할 테이블을 생성한 후 트리거가 활성화되는 시간을 설정하고 마지막으로 정의된 조건이 충족될 때 트리거해야 합니다.

mysql에서 트리거를 생성하는 방법

[추천 과정: #🎜에 정의된 문 모음을 충족하고 실행합니다. 🎜#MySQL Tutorial#🎜🎜 #

트리거

트리거는 다음 중 하나입니다. MySQL의 데이터베이스 객체는 프로그래밍 언어의 함수와 매우 유사하며 둘 다 선언하고 실행해야 합니다. 그러나 트리거 실행은 프로그램에 의해 호출되거나 수동으로 시작되지 않고 이벤트에 의해 트리거되고 활성화되어 실행됩니다. DOM의 이벤트와 다소 유사합니다.

트리거 생성


트리거 생성 구문은 다음과 같습니다.

# 🎜🎜 #

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row<触发器主体>
문법 분석

Trigger name

은 트리거 이름을 나타냅니다. 및 데이터베이스에서 고유합니다(특정 데이터베이스에서 생성하는 경우 데이터베이스 이름을 추가해야 함)

INSERT | DELETE

#🎜🎜 #

은 트리거를 활성화하는 문 유형을 지정하는 데 사용되는 트리거 이벤트를 의미합니다. INSERT: 새 행이 테이블에 삽입되면 트리거가 활성화됩니다.

#🎜🎜 #DELETE: 테이블에서 데이터 행이 삭제될 때 트리거 활성화

UPDATE: 테이블의 특정 데이터 행이 변경될 때 트리거 활성화

BEFORE | AFTER

트리거가 실행되는 순간, 트리거를 활성화하는 명령문 이전 또는 이후에 트리거가 실행되는지 여부를 나타냅니다. 새 데이터가 조건을 충족하는지 확인하려면 BEFORE 옵션을 사용하고, 트리거를 활성화하는 문이 실행된 후 여러 가지 변경 사항을 완료하려면 일반적으로 AFTER 옵션을 사용합니다.

테이블 이름

이 테이블은 영구 테이블이어야 합니다. 트리거는 임시 테이블과 결합될 수 없습니다. 또는 연결된 보기. 테이블에 트리거 이벤트가 발생하면 트리거가 활성화됩니다. 동일한 테이블에는 실행 시간과 이벤트가 동일한 두 개의 트리거가 있을 수 없습니다.

트리거 본문

트리거 작업 본문에는 트리거가 활성화될 때 실행될 MySQL 문이 포함되어 있습니다. 여러 문을 실행하려면 BEGIN…END 복합 문 구조를 사용할 수 있습니다.

FOR EACH ROW

은 행 수준 트리거링을 의미하며, 트리거 이벤트의 영향을 받는 각 행에 대해 트리거 작업이 활성화되어야 합니다.

참고

: 동일한 테이블에서 동일한 트리거 시간을 갖는 동일한 트리거 이벤트에 대해 하나의 트리거만 정의할 수 있습니다. 트리거는 임시 테이블이 아닌 영구 테이블에서만 생성할 수 있습니다.

예: double_salary라는 트리거를 생성합니다

double_salary
   -> AFTER INSERT ON tb_emp1
   -> FOR EACH ROW
   -> INSERT INTO tb_emp2
   -> VALUES (NEW.id,NEW.name,deptId,2*NEW.salary);
Query OK, 0 rows affected (0.25 sec)

위 코드의 의미는 double_salary에 대한 트리거를 생성하는 것입니다. 트리거 조건은 tb_emp1 데이터 테이블에 데이터를 삽입한 후 tb_emp2 데이터 테이블에도 동일한 데이터가 삽입되고, 급여는 tb_emp1에 새로 삽입된 급여 필드 값의 2배가 되는 것입니다. mysql에서 트리거를 생성하는 방법

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들께 도움이 되었으면 좋겠습니다.

위 내용은 mysql에서 트리거를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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