programing

MySQL 데이터베이스의 모든 트리거를 나열하려면 어떻게 해야 합니까?

newsource 2022. 9. 28. 00:12

MySQL 데이터베이스의 모든 트리거를 나열하려면 어떻게 해야 합니까?

MySQL 데이터베이스의 모든 트리거를 나열하는 명령어는 무엇입니까?

모든 트리거를 나열하는 명령어는 다음과 같습니다.

show triggers;

또는 에 액세스 할 수 있습니다.INFORMATION_SCHEMA직접 테이블:

select trigger_schema, trigger_name, action_statement
from information_schema.triggers
  • 이것은 버전 5.0.10 이후부터 실행할 수 있습니다.
  • 에 대한 자세한 내용은 여기를 참조하십시오.

다음 코드가 더 많은 정보를 제공해주길 바랍니다.

select * from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%your_db_name%'

그러면 MySQL 버전 5.5.27 이상에서 총 22개의 열이 제공됩니다.

TRIGGER_CATALOG 
TRIGGER_SCHEMA
TRIGGER_NAME
EVENT_MANIPULATION
EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA 
EVENT_OBJECT_TABLE
ACTION_ORDER
ACTION_CONDITION
ACTION_STATEMENT
ACTION_ORIENTATION
ACTION_TIMING
ACTION_REFERENCE_OLD_TABLE
ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW
ACTION_REFERENCE_NEW_ROW
CREATED 
SQL_MODE
DEFINER 
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION

아래를 사용하여 특정 트리거 정의를 찾을 수 있습니다.

SHOW TRIGGERS LIKE '%trigger_name%'\G

또는 아래를 클릭하여 데이터베이스 내의 모든 트리거를 표시합니다.MySQL 5.0 이상에서 작동합니다.

SHOW TRIGGERS\G

특정 스키마에서 특정 트리거를 표시하기 위해 다음을 시도할 수 있습니다.

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%'

MySQL Workbench: MySQL Server Select DB에 연결

  • 테이블
  • 테이블 네임라인에서 편집 아이콘(작업 도구처럼 표시됨)을 클릭합니다.
  • 테이블 편집 창에서 - "트리거" 탭을 클릭합니다.
  • 트리거 목록에서 eTrigger 이름을 클릭하여 소스 코드를 가져옵니다.

이 문장은 문제 해결에 도움이 될 수 있습니다.

select LOWER(concat('delimiter |', '\n', 'create trigger %data_base_name%.', TRIGGER_NAME, '\n', 
'    ', ACTION_TIMING, ' ', EVENT_MANIPULATION, ' on %data_base_name%.', EVENT_OBJECT_TABLE, ' for each row', '\n',
ACTION_STATEMENT, '\n',
'|')) AS TablaTriggers from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%data_base_name%'

언급URL : https://stackoverflow.com/questions/47363/how-do-you-list-all-triggers-in-a-mysql-database