CREATE TRIGGER の一般的な構文は次のとおりです。 CREATE TRIGGER トリガー名 トリガー時間 トリガーイベント ON tbl_name FOR EACH ROW トリガーステートメント
次の例では、Emp テーブルにレコードを挿入する前に、Employee テーブルの Salary 列を更新しています。例 :
mysql> SELECT * FROM 従業員;
+-----+---------+----------+-------------------+-- ------+-------+
| | イード | イード エナメ | 都市 | 指定 | 給与 | 特典 |
+-----+---------+----------+-------------------+-- ------+-------+
| | 1 | ラフル | ラフル | デリー | デリー | マネージャー | 10300 | 853 |
| | 2 | ガウラフ | ムンバイ | ムンバイ アシスタントマネージャー | 10300 | 853 |
| | 3 | チャンダン | バンガロール | バンガロール チームリーダー | 15450 | 999 |
| | 5 | タパン | タパン | プネー | プネ | 開発者 | 20600 | 1111 |
| | 6 | アマール | アマール | チェンナイ | チェンナイ 開発者 | 16000 | 1124 |
| | 7 | サントッシュ | サントッシュ | デリー | デリー | デザイナー | 10000 | 865 |
| | 8 | スマン | プネー | プネ | ウェブデザイナー | 20000 | 658 |
+-----+---------+----------+-------------------+-- ------+-------+
7 行セット (0.00 秒)
mysql> デリミタ //
mysql> CREATE TRIGGER ins_trig BEFORE INSERT ON Emp
-> FOR EACH ROW
-> BEGIN
-> UPDATE Employee SET Salary=Salary-300 WHERE Perks>500;
-> END;
-> //
クエリ OK、影響を受ける行は 0 (0.01 秒)
mysql> デリミタ;
mysql> INSERT INTO Emp VALUES(9,'Rajesh','Delhi','Developer',15000,658);
クエリ OK、影響を受ける 1 行 (0.05 秒)
mysql> SELECT * FROM 従業員;
+-----+---------+----------+-------------------+-- ------+-------+
| | イード | イード エナメ | 都市 | 指定 | 給与 | 特典 |
+-----+---------+----------+-------------------+-- ------+-------+
| | 1 | ラフル | ラフル | デリー | デリー | マネージャー | 10000 | 853 |
| | 2 | ガウラフ | ムンバイ | ムンバイ アシスタントマネージャー | 10000 | 853 |
| | 3 | チャンダン | バンガロール | バンガロール チームリーダー | 15150 | 999 |
| | 5 | タパン | タパン | プネー | プネ | 開発者 | 20300 | 1111 |
| | 6 | アマール | アマール | チェンナイ | チェンナイ 開発者 | 15700 | 1124 |
| | 7 | サントッシュ | サントッシュ | デリー | デリー | デザイナー | 9700 | 865 |
| | 8 | スマン | プネー | プネ | ウェブデザイナー | 19700 | 658 |
+-----+---------+----------+-------------------+-- ------+-------+
7 行セット (0.00 秒)