MySQL Advanced 8 - トリガーの使用

黄舟
リリース: 2016-12-29 16:42:47
オリジナル
1126 人が閲覧しました

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

次の特徴があります:

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

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

トリガー時間: 後/前

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

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

例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) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!