>  기사  >  데이터 베이스  >  MySQL 트리거의 완전한 숙달

MySQL 트리거의 완전한 숙달

WBOY
WBOY앞으로
2022-06-28 15:25:392754검색

이 글에서는 mysql에 대한 관련 지식을 제공합니다. 트리거가 필요한 이유, 트리거 개요, 트리거 생성 등 트리거와 관련된 문제를 주로 정리합니다. 함께 살펴보세요. 모두를 돕습니다.

MySQL 트리거의 완전한 숙달

추천 학습: mysql 동영상 튜토리얼

1. 트리거가 필요한 이유

제품 테이블과 재고 테이블 등 일부 테이블은 서로 관련되어 있으며, 그 다음에는 제품 테이블의 데이터를 작동합니다. 해당 데이터의 무결성을 보장하려면 인벤토리 테이블을 변경해야 합니다. 우리가 직접 수동으로 유지 관리한다면 더 번거로울 것입니다.
이때, 트리거를 사용하여 트리거를 생성하면, 상품 정보 데이터 삽입 작업이 자동으로 재고 데이터 등의 삽입 작업이 트리거되므로, 깜빡해서 데이터가 손실될 염려가 없습니다. 인벤토리 데이터를 추가합니다.

2. 트리거 개요

  • MySQL은 버전 5.0.2부터 트리거를 지원합니다.
  • MySQL 트리거는 저장 프로시저와 마찬가지로 MySQL 서버에 내장된 프로그램입니다.
  • 트리거는 작업을 트리거하는 특정 이벤트로 구성됩니다. , 이러한 이벤트에는 삽입, 삭제, 업데이트 이벤트가 포함됩니다
  • 트리거 프로그램이 정의된 경우 데이터베이스가 이러한 명령문을 실행할 때 이는 이벤트 발생과 동일하며 트리거가 자동으로 트리거되어 해당 작업을 수행합니다
  • 데이터베이스의 테이블에 데이터를 삽입할 때 일부 데이터베이스 논리를 자동으로 실행해야 하는 경우 트리거를 사용하여 이를 달성할 수 있습니다.

3. 트리거 생성

3.1 구문

트리거는 테이블에서 작동합니다. 예를 들어 테이블 A에 새 레코드가 추가되면 트리거 실행이 트리거되도록 해야 합니다. 트리거 - 삽입 문이 실행되기 전 또는 후에 트리거가 실행되는지 여부입니다.

  • 각 행은 이벤트(삽입, 업데이트 또는 삭제)가 실행될 때마다 트리거가 트리거됨을 나타냅니다.
CREATE TRIGGER 触发器名称 
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 
FOR EACH ROW 触发器执行的语句块;

설명:

  • 테이블 이름: 트리거 모니터링을 나타냅니다. 물체. 表名:表示触发器监控的对象。

  • BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。

  • INSERT|UPDATE|DELETE:表示触发的事件。

    • INSERT 表示插入记录时触发;
    • UPDATE 表示更新记录时触发;
    • DELETE 表示删除记录时触发。
  • 触发器执行的语句块

BEFORE|AFTER: 트리거 시간을 나타냅니다. BEFORE는 이벤트 전의 트리거를 의미하고 AFTER는 이벤트 이후의 트리거를 의미합니다.

INSERT|UPDATE|DELETE: 트리거된 이벤트를 나타냅니다.


MySQL 트리거의 완전한 숙달INSERT는 레코드가 삽입될 때 트리거되는 것을 의미합니다.
MySQL 트리거의 완전한 숙달UPDATE는 레코드가 업데이트될 때 트리거되는 것을 의미합니다.

DELETE는 레코드가 삭제될 때 트리거되는 것을 의미합니다.

  • 트리거에 의해 실행되는 명령문 블록: 단일 SQL 문일 수도 있고 BEGIN...END 구조로 구성된 복합 명령문 블록일 수도 있습니다.

MySQL 트리거의 완전한 숙달3.2 사례 데모

    테이블을 먼저 준비하세요
  • CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));
  • 요구사항: 트리거 생성: before_insert라는 이름의 트리거를 생성합니다. test_trigger 데이터 테이블에 데이터를 삽입하기 전에 before_insert 로그 정보를 test_trigger_log 데이터 테이블에 삽입하세요.

MySQL 트리거의 완전한 숙달

  • 4. 트리거 보기

트리거 보기는 데이터베이스에 이미 존재하는 트리거의 정의, 상태 및 구문 정보를 보는 것입니다.

방법 1: 현재 데이터베이스에 있는 모든 트리거의 정의 보기

show triggers\G 注意,在SQLyog中,不能加上\G
🎜🎜방법 2: 현재 데이터베이스에서 트리거 정의 보기🎜🎜
show create trigger 触发器名
🎜🎜🎜🎜🎜방법 3: 시스템 라이브러리 information_schema🎜🎜의 TRIGGERS 테이블에서 "salary_check_trigger" 트리거 정보 쿼리
SELECT * FROM information_schema.TRIGGERS;
🎜 5. 트리거 삭제🎜🎜트리거도 데이터베이스 객체이며, 드롭 문을 사용하여 트리거도 삭제됩니다.🎜
drop trigger if exists 触发器名;
🎜추천 학습: 🎜mysql 비디오 튜토리얼🎜🎜

위 내용은 MySQL 트리거의 완전한 숙달의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제