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

推薦する

HTML tbody の使用

構造化テーブル (IExplore のみ) 1) 行ごとにグループ化<thead> .....

Vue でよく使われる命令 v-if と v-show の違いを簡単に分析します。

目次序文1.v-ショー2.v-if 3. v-showとv-ifの違い1. 原則の違い2. アプリケ...

1 つ以上のフィールドに基づいて重複データを検索する MySQL SQL ステートメント

SQLはテーブル内の重複レコードをすべて見つけます1. テーブルには id と name の 2 つ...

React イベントバインディングの詳細

目次クラスコンポーネントイベントバインディング関数コンポーネントイベントバインディング要約するRea...

MySQL でのバイナリ型操作

この記事は主にMySQLデータベースのバイナリ型操作を紹介し、具体的な内容を通して紹介します。MyS...

Centos7にnginxをインストールする方法

必要な環境をインストールする1. gccのインストールnginx をインストールするには、公式サイト...

MySQLがサブクエリと結合の使用を推奨しない理由

ページ分割されたクエリを実行するには: 1. MySQL の場合、サブクエリと結合の使用は推奨されま...

チェックボックスの不確定プロパティの使用の紹介

Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...

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

MySQLをインストールする6つの手順(インストールパッケージのみがインストール場所を選択できます)...

CSS はモバイル デバイスで水平スクロール ナビゲーション バーを実装します (PC デバイスにも適用可能)

関数の起源最近、水平スクロール バーを必要とする H5 に取り組んでいました。いくつかのドキュメント...

MySQLテーブルをコピーする方法

目次1.mysqlダンプ実行プロセス:特徴2. CSVファイルをエクスポートする(最も柔軟性が高い)...

MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal

Canal は、Java を使用して開発された Alibaba のオープンソース プロジェクトです...

Linux での MySQL 5.1 および 5.7 のインストール チュートリアル

以下のコンテンツのオペレーティング システムは次のとおりです: Centos 6.7 yum で M...

アイデアを war パッケージにパッケージ化し、tomcat にデプロイしてアクセス パスの問題 (図とテキスト)

Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...

ライフゲームの JavaScript 実装

目次コンセプト紹介論理的ルール完全なコード主な実装コンセプト紹介セルオートマトンとは、コンピュータの...