ホームページ  >  記事  >  データベース  >  MySQL Advanced 8 - トリガーの使用

MySQL Advanced 8 - トリガーの使用

黄舟
黄舟オリジナル
2016-12-29 16:42:471175ブラウズ

トリガーは、特定のテーブルでデータを挿入、削除、または変更するときに実行をトリガーする特別なストアド プロシージャで、データベース自体の標準機能よりも洗練された複雑なデータ制御機能を備えています。

次の特徴があります:

監視場所: 通常はテーブル名

監視イベント: 更新/削除/挿入

トリガー時間: 後/前

トリガーイベント: 更新/削除/挿入

直接実行することはできません呼び出されると、データベースによってアクティブに実行されます。

例1:

テーブルtab1を作成

DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
    tab1_id varchar(11)
);

テーブルtab2を作成

DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
    tab2_id varchar(11)
);

トリガーを作成: t_afterinsert_on_tab1

機能: tab1テーブルのレコードを追加した後、自動的にtab2テーブルにレコードを追加します

DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1 
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
     insert into tab2(tab2_id) values(new.tab1_id);
END;

テストしてください

INSERT INTO tab1(tab1_id) values('0001');


結果を見てください
SELECT * FROM tab1;
SELECT * FROM tab2;

example2:

トリガーの作成: t_afterdelete_on_tab1

機能: tab1 テーブルのレコードを削除すると、tab2 テーブルの対応するレコードが自動的に削除されます

DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
      delete from tab2 where tab2_id=old.tab1_id;
END;

テストしてください

DELETE FROM tab1 WHERE tab1_id='0001';


result
SELECT * FROM tab1;
SELECT * FROM tab2;

上記は、MySQL Advanced 8 - トリガーの使用の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。