1. なぜトリガーが必要なのでしょうか?
製品テーブルや在庫テーブルなど、いくつかのテーブルは相互に関連しています。製品テーブルの場合は、データの整合性を確保するために、対応する在庫テーブルも変更する必要があります。自分で手動でメンテナンスするのはさらに面倒です。
このとき、商品情報データの挿入操作が自動的に在庫データなどの挿入操作をトリガーするようにトリガーを作成することができ、忘れによるデータの損失を心配する必要はありません。在庫データを追加します。
2. トリガーの概要
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 データ テーブルに挿入します。
4. ビュー トリガー
ビュー トリガーは、データベースにすでに存在するトリガーの定義を表示します。ステータスや構文情報など。
- 方法 1: 現在のデータベース内のすべてのトリガーの定義を表示します。
show triggers\G 注意,在SQLyog中,不能加上\G
ログイン後にコピー
方法 2: 現在のデータベース内のトリガーの定義を表示する
show create trigger 触发器名
ログイン後にコピー
方法 3 :システム ライブラリ information_schema
SELECT * FROM information_schema.TRIGGERS;
ログイン後にコピー
5 の TRIGGERS テーブルから「salary_check_trigger」トリガー情報をクエリします。トリガーを削除します。
トリガーもデータベース オブジェクトです。トリガーと同様に、drop ステートメントを使用して
drop trigger if exists 触发器名;
ログイン後にコピー
を削除します
以上がMySQL トリガーを作成および削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。