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

推薦する

CSS3は、変換変形とイベントを組み合わせて扇形のナビゲーションを完成させます。

この場合、transition という単語を間違って書いたため、午後中ずっとそれに取り組みました。本...

MySQLにインデックスを追加する方法

インデックスの簡単な紹介は次のとおりです。インデックスを追加する目的は、データベース クエリのパフォ...

MySQL グループレプリケーションの設定手順 (推奨)

MySQL-Group-Replication は、MySQL-5.7.17 で開発された新しい機...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

クラスタrpmを使用してMySQLをインストールするための詳細な手順

MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...

Reactでのイベントバインディングの実装は3つの方法を指しています

1. 矢印関数1. 矢印関数自体はこれをバインドしないという事実を利用します。 2. render(...

Red Hat Enterprise Linux 8 をベースにした CentOS 8 が正式にリリースされました

CentOS プロジェクトは、Red Hat の再配布要件に完全に準拠した、Red Hat Ente...

LAMP ソースコードを使用したエンタープライズレベルのインストールチュートリアル

目次LAMPアーキテクチャ1.ランプの紹介2. WebサービスワークフローWebサーバーのリソースは...

a href=# と a href=javascript:void(0) の違いの詳細な説明

a href="#"> リンクをクリックすると、ページがページ上部までスク...

Linux インストール MySQL5.6.24 使用手順

Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...

Linux でシステム ディスクを初期化した後にデータ ディスクを再マウントする方法

Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...

MySQL データベースの文字化け問題の原因と解決策

序文データベースのデータを表示すると、文字化けした文字が表示されることがあります。実際、どのようなデ...

vue3+threejs を使用して iView 公式サイトのビッグウェーブ特殊効果の例を模倣する

目次序文1. レンダリング2. コード3. 背景画像素材要約する序文Threejs は、Web ベー...

JavaScript の数値および数学オブジェクトの概要

目次1. JavaScript における数値2. Javascript の Math オブジェクト1...

Ubuntu 18.04にMySQL 5.7をインストールする

この記事は MySQL 公式サイトを参考にしてまとめたものであり、遭遇したいくつかの問題も記録されて...