ホームページ  >  記事  >  データベース  >  MySQL トリガーを完全にマスターする

MySQL トリガーを完全にマスターする

WBOY
WBOY転載
2022-06-28 15:25:392755ブラウズ

この記事では、mysql に関する関連知識を提供します。この記事では、トリガーが必要な理由、トリガーの概要、トリガーの作成など、主にトリガーに関連する問題を整理しています。以下の内容が皆様のお役に立てれば幸いです。

MySQL トリガーを完全にマスターする

推奨学習: mysql ビデオ チュートリアル

1. トリガーが必要な理由

一部のテーブルは相互に排他的です製品テーブルと在庫テーブルなど、製品テーブルのデータを操作する場合、データの整合性を確保するために、対応する在庫テーブルを変更する必要があります。自分で手動でメンテナンスするのはさらに面倒です。
現時点では、トリガーを使用して、商品情報データの挿入操作が在庫データなどの挿入操作を自動的にトリガーするようにトリガーを作成できるため、データ損失を心配する必要はありません。在庫データの追加を忘れたためです。

2. トリガーの概要

  • MySQL はバージョン 5.0.2 以降のトリガーをサポートします
  • MySQL トリガーはストアド プロシージャと同じです。 MySQL サーバーに埋め込まれたプログラムです。
  • トリガーとは、操作をトリガーする特定のイベントです。これらのイベントには、挿入、削除、更新イベントが含まれます。
  • トリガー プログラムが定義されている場合、データベース これらのステートメントが実行されると、イベントが発生したことと同等になり、対応する操作を実行するトリガーが自動的にトリガーされます。いくつかのデータベース操作を自動的に実行する必要がある場合、ロジックに関してはトリガーを使用して実装できます。
  • 3. トリガーの作成
3.1 構文

トリガーはテーブルに作用します。たとえば、テーブル A に新しい項目を追加したいとします。トリガーの実行は記録時にトリガーされます。また、トリガーを挿入ステートメントの実行前に実行するか後に実行するかを選択する必要もあります。

#各行は、イベント (挿入、更新、または削除) が実行されるたびにトリガーがトリガーされることを示します

CREATE TRIGGER 触发器名称 
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 
FOR EACH ROW 触发器执行的语句块;
    説明:

テーブル名
    : トリガーが監視するオブジェクトを示します。
  • BEFORE|AFTER
  • : トリガー時間を示します。 BEFORE はイベントの前にトリガーすることを意味し、AFTER はイベントの後にトリガーすることを意味します。
  • INSERT|UPDATE|DELETE
  • : トリガーされたイベントを示します。
  • INSERT は、レコードの挿入時にトリガーされることを示します。

    UPDATE は、レコードの更新時にトリガーされることを示します。
    • DELETE は、レコードの挿入時にトリガーされることを示します。レコードが削除されたときにトリガーされます。
    トリガーによって実行されるステートメント ブロック
  • : 単一の SQL ステートメント、または BEGIN...END 構造で構成される複合ステートメント ブロックにすることができます。
  • 3.2 ケースのデモ

  • 最初にテーブルを準備します
CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));

要件: トリガーの作成: before_insert という名前のトリガーを作成し、test_trigger データに挿入します。 table データの前に、before_insert のログ情報を test_trigger_log データ テーブルに挿入します。


MySQL トリガーを完全にマスターする4. ビュー トリガー
MySQL トリガーを完全にマスターする

ビュー トリガーは、データベースにすでに存在するトリガーの定義、ステータス、および構文を表示します。情報など

方法 1: 現在のデータベース内のすべてのトリガーの定義を表示します
  • show triggers\G 注意,在SQLyog中,不能加上\G

方法 2:現在のデータベース内の特定のトリガー トリガーの定義MySQL トリガーを完全にマスターする

show create trigger 触发器名

方法 3: システム ライブラリの TRIGGERS テーブルから「salary_check_trigger」トリガー情報をクエリします。 information_schemaMySQL トリガーを完全にマスターする

SELECT * FROM information_schema.TRIGGERS;
    5. トリガーの削除
  • トリガーもデータベース オブジェクトであり、トリガーは Drop ステートメントを使用して削除されます
drop trigger if exists 触发器名;

推奨される学習:

mysql ビデオチュートリアル

以上がMySQL トリガーを完全にマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。