MySQL トリガーの追加、削除、変更、クエリ操作の例

MySQL トリガーの追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明します。ご参考までに、詳細は以下の通りです。

トリガーを作成したら、トリガー定義ファイルが含まれているデータ フォルダーにその定義を表示できます。トリガーは、次のデータベース フォルダーにプレーン テキスト ファイルとして保存されます。

/データフォルダ/データベース名/テーブル名.trg

次のように information_schema データベースのトリガー テーブルをクエリしてトリガーを表示することもできます。

選択 
  *
から
  情報スキーマトリガー
どこ
  トリガースキーマ = 'データベース名'
    AND トリガー名 = 'トリガー名';

このステートメントを使用すると、トリガーの内容とそのメタデータ (関連付けられたテーブル名や、トリガーを作成した mysql ユーザーの名前である定義者など) を表示できます。

指定されたデータベース内のすべてのトリガーを取得する場合は、次の SELECT ステートメントを使用して、information_schema データベースのトリガー テーブルからデータを照会する必要があります。

選択
  *
から
  情報スキーマトリガー
どこ
  トリガースキーマ = 'データベース名';

特定のテーブルに関連付けられているすべてのトリガーを検索するには:

選択 
  *
から
  情報スキーマトリガー
どこ
  トリガースキーマ = 'データベース名'
    かつ、event_object_table = 'table_name';

従業員テーブルに関連付けられているすべてのトリガーを見てみましょう。

information_schema.triggers から * を選択
WHERE trigger_schema = 'データベース名'
    かつ、event_object_table = '従業員';

特定のデータベース内のトリガーを表示する別の方法は、SHOW TRIGGERS ステートメントを使用することです。構文は次のとおりです。

SHOW TRIGGERS [FROM|IN] データベース名
[LIKE expr | WHERE expr];

たとえば、現在のデータベース内のすべてのトリガーを表示する場合は、次のように SHOW TRIGGERS ステートメントを使用できます。

トリガーを表示;

特定のデータベース内のすべてのトリガーを取得するには、SHOW TRIGGERS ステートメントでデータベース名を指定します。たとえば、データベース luyaran のすべてのトリガーをクエリするには、次のようにします。

luyaran からのトリガーを表示します。

特定のテーブルに関連付けられているすべてのトリガーを取得するには、SHOW TRIGGERS ステートメントで WHERE 句を使用できます。 次のステートメントは、employees テーブルに関連付けられているすべてのトリガーを返します。

luyaran からのトリガーを表示
WHERE `table` = 'employees';

ここで、テーブルは MySQL の予約キーワードであるため、テーブル列を囲むためにバックティックを使用していることに注意してください。次に、SHOW TRIGGERS ステートメントを実行すると、MySQL は次の列を返します。

  • トリガー: before_employee_update トリガーなどのトリガーの名前を格納します。
  • イベント: トリガーを呼び出した INSERT、UPDATE、DELETE などのイベントを指定します。
  • テーブル: トリガーが関連付けられているテーブル (従業員テーブルなど) を指定します。
  • ステートメント: トリガーが呼び出されたときに実行されるステートメントまたは複合ステートメントを格納します。
  • タイミング: トリガーのアクティブ化時間を指定する BEFORE と AFTER の 2 つの値を受け入れます。
  • 作成日: トリガーが作成された作成時刻を記録します。
  • sql_mode: トリガーが実行される際の SQL モードを指定します。
  • 定義者: トリガーを作成したアカウントを記録します。

ここで注意しなければならないのは、上記のステートメントを許可するには、少なくとも SUPER 権限が必要であるということです。

次に、DROP TRIGGER ステートメントを使用して既存のトリガーを削除してみましょう。

DROP TRIGGER テーブル名.トリガー名;

employees テーブルに関連付けられた before_employees_update トリガーを削除する場合は、次のステートメントを実行します。

DROP TRIGGER employees.before_employees_update;

トリガーを変更する場合は、まずトリガーを削除し、新しいコードで再作成する必要があります。 MySQL には ALTER TRIGGER ステートメントがないため、テーブル、ビュー、ストアド プロシージャなどの他のデータベース オブジェクトを変更するのと同じようにトリガーを変更することはできません。

さて、この記録についてはこれですべてです。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • PHPを使用してMySqlデータベースにアクセスする論理操作と追加、削除、変更、チェックの例
  • PHPは、オブジェクト指向のmysqli拡張ライブラリを実装し、追加、削除、変更、クエリ操作ツールクラスを作成します。
  • PHP MySqlの追加、削除、変更、チェックの簡単な例
  • PHP+MySQLは、シンプルな追加、削除、変更、クエリ機能を実装します。
  • PHP+MYSQLはユーザーの追加、削除、変更、クエリを実装します
  • MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント
  • MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]
  • MySQLとPHPの基礎と応用: 追加、削除、変更、クエリ

<<:  カルーセル効果を実現するためのネイティブJavaScript+CSS

>>:  Ubuntu ベースのディストリビューションに Microsoft TrueType フォントをインストールするチュートリアル

推薦する

Windows 64 ビットでの MySQL 8.0.13 のインストールと設定方法のグラフィック チュートリアル

この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...

Windows 10 Home Edition に Docker for Windows をインストールする

0. 背景ハードウェア: Xiaomi Notebook Air 13/Inter Core i7-...

Linux Zabbixカスタム監視およびアラーム実装プロセスの分析

ターゲットzabbix フロントエンド監視の iostat コマンドでデータの 1 つを表示します。...

ラムダ式の原則と例

ラムダ式ラムダ式 (クロージャとも呼ばれる) は、Java 8 のリリースを推進した最も重要な新機能...

Centos に MYSQL8.X をインストールするチュートリアル

MySQLのインストール(4、5、6は省略可能)ステートメント: CentOS のバージョンは 7....

CentOS に Nginx をインストールする方法

公式ドキュメント: https://nginx.org/en/linux_packages.html...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...

JavaScript キャンバス テトリス ゲーム

テトリスは非常に古典的な小さなゲームで、私もそれを書いてみました。しかし、できるだけ簡潔で論理的なコ...

素晴らしいCSS属性MASKの詳しい説明

この記事では、CSS の非常に興味深い属性マスクを紹介します。名前が示すように、マスクはマスクと翻訳...

JavaScript ES6 分割演算子の理解と応用

目次序文脱構築記号の役割使い方分割割り当ての適用アプリケーションの簡単な紹介JSONデータを抽出する...

IE6/7 は混乱するだろう: 空のテキスト ノードの高さの問題

序文: ietester でドキュメント コードを表示するには、debugbar を使用します。すべ...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

Linux sedコマンドの使用

1. 機能紹介sed (Stream EDitor) は、コンテンツを 1 行ずつ処理するストリーム...

ウェブページの要素の検査とソースコードの表示の違いについて

Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...

MySQL 5.7.16 無料インストール版のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...