2024年3月25日月曜日

mysqlで設定したトリガを再利用できるSQL形式で出力する

一度設定したトリガを削除したり、追加したりしなければいけない。


==== 設定したトリガを再利用可能なSQL形式で出力 ==== 

SELECT 

  CONCAT('CREATE TRIGGER ', TRIGGER_NAME, ' ', ACTION_TIMING, ' ', EVENT_MANIPULATION, 

         ' ON ', EVENT_OBJECT_TABLE, ' FOR EACH ROW ', ACTION_STATEMENT) AS sql_statement

FROM INFORMATION_SCHEMA.TRIGGERS

WHERE TRIGGER_SCHEMA = 'YourDatabaseName';




==== 全てのトリガを削除 ====

トリガを消すためには動的な値は禁止らしいので、副クエリは無理。

ストアドプロシージャで出来るらしいが、どうも動かない・・・

明示的に書かなければいけないので、トリガ名を出力してみる


SELECT TRIGGER_SCHEMA, TRIGGER_NAME

FROM INFORMATION_SCHEMA.TRIGGERS

WHERE TRIGGER_SCHEMA = 'YourDatabaseName';




0 件のコメント:

コメントを投稿