> 데이터 베이스 > MySQL 튜토리얼 > mysql 쿼리 트리거의 명령문은 무엇입니까?

mysql 쿼리 트리거의 명령문은 무엇입니까?

青灯夜游
풀어 주다: 2022-06-14 15:57:03
원래의
6150명이 탐색했습니다.

mysql 쿼리 트리거에는 두 가지 명령문이 있습니다. 1. 현재 데이터베이스 또는 지정된 데이터베이스 트리거의 기본 정보를 볼 수 있는 "SHOW TRIGGERS [FROM 데이터베이스 이름];" 명령문입니다. 2. "SELECT * FROM information_schema.triggers WHERE Trigger_name= 'trigger name';" 문은 특정 트리거의 정보를 보고 트리거의 내용과 관련 테이블 이름 및 정의자와 같은 해당 메타데이터를 가져오는 데 사용됩니다.

mysql 쿼리 트리거의 명령문은 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

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

MySQL에서 트리거를 보는 방법에는 두 가지가 있습니다.

  • SHOW TRIGGERS 문

  • information_schema 데이터베이스 등에서 트리거 데이터 테이블을 쿼리합니다.

1 SHOW TRIGGERS 문을 사용하여 트리거 정보를 봅니다.

MySQL에서는 SHOW TRIGGERS 문을 통해 트리거의 기본 정보를 볼 수 있습니다. 구문 형식은 다음과 같습니다.

SHOW TRIGGERS [FROM 数据库名];
로그인 후 복사

FROM 数据库名: 현재 데이터베이스의 모든 트리거를 보려면 선택적인 문입니다. , 데이터베이스의 모든 트리거에 대해 특정 정보를 얻으려면 생략하지 말고 데이터베이스 이름을 지정하세요.

예제 1

먼저 데이터 테이블 계정을 생성합니다. 테이블에는 INT 유형의 accnum과 DECIMAL 유형의 두 가지 필드가 있습니다. SQL 문 및 실행 결과는 다음과 같습니다.

mysql> CREATE TABLE account(
    -> accnum INT(4),
    -> amount DECIMAL(10,2));
Query OK, 0 rows affected (0.49 sec)
로그인 후 복사

trigupdate라는 트리거를 생성하고 계정 테이블이 데이터를 업데이트할 때마다 myevent 데이터 테이블에 데이터 조각을 삽입합니다. 데이터 테이블 myevent를 생성하기 위한 SQL 문 및 실행 결과는 다음과 같습니다.

mysql> CREATE TABLE myevent(
    -> id INT(11) DEFAULT NULL,
    -> evtname CHAR(20) DEFAULT NULL);
Query OK, 0 rows affected (0.26 sec)
로그인 후 복사

trigupdate 트리거를 생성하는 SQL 코드는 다음과 같습니다.

mysql> CREATE TRIGGER trigupdate AFTER UPDATE ON account
    -> FOR EACH ROW INSERT INTO myevent VALUES(1,'after update');
Query OK, 0 rows affected (0.15 sec)
로그인 후 복사

SHOW TRIGGERS 문을 사용하여 트리거를 확인합니다(SHOW TRIGGERS 뒤에 G 추가). 명령어를 실행하면 좀 더 체계적으로 표시됩니다.) SQL 문과 실행 결과는 다음과 같습니다.

mysql> SHOW TRIGGERS \G
로그인 후 복사

mysql 쿼리 트리거의 명령문은 무엇입니까?

실행 결과에서 트리거의 기본 정보를 확인할 수 있습니다. 위에 표시되는 정보에 대한 설명은 다음과 같습니다.

  • Trigger는 트리거의 이름을 나타내며, 여기서 트리거의 이름은 trigupdate입니다.

  • Event는 트리거를 활성화하는 이벤트를 나타내며, 여기서의 트리거 이벤트는 다음과 같습니다. 업데이트 작업 UPDATE;

  • 타이밍은 트리거 실행을 나타냅니다. 여기서 시간은 업데이트 작업(AFTER) 이후입니다.

  • 트리거 생성 시간, SQL 모드, 정의 계정과 같은 다른 정보도 있습니다. 트리거의 문자셋 등은 여기서는 하나씩 소개하지 않겠습니다.

  • SHOW TRIGGERS 문은 현재 생성된 모든 트리거에 대한 정보를 보는 데 사용됩니다. 이 문은 지정된 트리거를 쿼리할 수 없으므로 트리거가 적을 때 이 문을 사용하는 것이 편리합니다. 특정 트리거에 대한 정보를 보고 싶거나 데이터베이스에 여러 개의 트리거가 있는 경우 information_schema 데이터베이스의 트리거 데이터 테이블에서 직접 검색할 수 있습니다.

  • 2. 트리거 테이블에서 트리거 정보 보기

MySQL에서는 모든 트리거 정보가 information_schema 데이터베이스의 트리거 테이블에 저장되어 있으며, 구체적인 구문은 다음과 같습니다. :

SELECT * FROM information_schema.triggers WHERE trigger_name= '触发器名';
로그인 후 복사

그 중 '트리거 이름'은 보려는 트리거의 이름을 지정하는 데 사용되며 작은따옴표로 묶어야 합니다. 이 메소드는 지정된 트리거를 쿼리할 수 있어 더욱 편리하고 유연하게 사용할 수 있습니다. 이 방법을 사용하면 트리거의 내용과 관련 테이블 이름, 트리거를 생성한 MySQL 사용자의 이름인 정의자 등 해당 메타데이터를 볼 수 있습니다.

예제 2

다음은 SELECT 명령을 사용하여 trigupdate 트리거를 확인합니다. SQL 문은 다음과 같습니다.

SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME= 'trigupdate'\G
로그인 후 복사

위 명령은 WHERE를 사용하여 확인해야 하는 트리거의 이름을 지정합니다. 결과는 다음과 같습니다.

mysql> SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME= 'trigupdate'\G
로그인 후 복사

실행하여 결과적으로 트리거의 세부 정보를 볼 수 있습니다. 위에 표시된 정보에 대한 설명은 다음과 같습니다.

TRIGGER_SCHEMA는 트리거가 있는 데이터베이스를 나타냅니다.

mysql 쿼리 트리거의 명령문은 무엇입니까?

TRIGGER_NAME은 트리거의 이름을 나타냅니다.

  • EVENT_OBJECT_TABLE은 트리거가 있는 데이터 테이블을 나타냅니다. ;

  • ACTION_STATEMENT는 트리거가 트리거될 때 수행되는 특정 작업을 나타냅니다.

  • ACTION_ORIENTATION의 값은 ROW입니다. 이는 모든 레코드에서 트리거된다는 것을 의미합니다.

  • 트리거 생성 시간, SQL 모드, 트리거 정의 계정 및 문자 집합 등과 같은 기타 정보는 여기서 하나씩 소개하지 않습니다.

上述 SQL 语句也可以不指定触发器名称,这样将查看所有的触发器,SQL 语句如下:

SELECT * FROM information_schema.triggers \G
로그인 후 복사

这个语句会显示 triggers 数据表中所有的触发器信息。

【相关推荐:mysql视频教程

위 내용은 mysql 쿼리 트리거의 명령문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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