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 フォントをインストールするチュートリアル

推薦する

MySQL でコマンドを使用して階層検索を実現する方法の詳細な説明

序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...

Nginx ベースのアクセス制御と接続制限の実装

序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

Docker データボリュームコンテナの作成と使用状況分析

データ ボリューム コンテナーは、データ ボリュームをマウントするために特別に使用されるコンテナーで...

Linux カーネル デバイス ドライバー仮想ファイル システムに関する注意事項

/******************** * 仮想ファイルシステム VFS **********...

css3 flexレイアウト justify-content:space-between 最後の行は左揃えになります

justify-content:space-betweenレイアウトを使用する場合、要素の最後の行に...

CSS の vertical-align プロパティとベースラインの問題に関する深い理解

vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...

Alibaba Cloud ServerにMySQLデータベースをインストールする方法の詳細な説明

序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...

Tencent Cloud で HTTPS を無料で導入する方法

最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...

Vueはキャンバスの手書き入力を使用して中国語を認識します

効果画像: 序文:最近、屋外の大画面プロジェクトに取り組んでいました。システムの入力方法は使いにくか...

Docker Compose マルチコンテナデプロイメントの実装

目次1. WordPressの導入1. 環境を整える(II) イメージを実行するDocker の作成...

JavaScript で知らない Object.entries の使い方

目次序文1. 共通オブジェクトを反復処理するには for...of を使用します2. 通常のオブジェ...

Vue でバイナリ ファイル ストリームを受信して​​ PDF プレビューを実現する方法

バックグラウンド コントローラー @RequestMapping("/getPDFStre...

テーブルの最大幅と最小幅を設定する際の互換性の問題と解決策の詳細な説明

テーブル内の min-width と max-width プロパティの設定 <テーブル>...

XHTML ブロックレベルタグの概要

* 住所 - 住所* blockquote - ブロック引用* center - 中央揃えブロック*...