トリガとは
テーブルに対してある処理が行われると、それが引き金に成ってあるコマンドが実行される仕組みの事。
■Aテーブルのレコードを削除すると、Bテーブルにコピーされるトリガ(tr1)を作成
mysql> DELIMITER //
mysql> CREATE TRIGGER tr1(トリガ名) BEFORE DELETE ON tb1 FOR EACH ROW
-> BEGIN
-> INSERT INTO tb1M VALUES(OLD.bang,OLD.nama,OLD.tosi);
-> END
-> //
Query OK, 0 rows affected (0.11 sec)
■コピーされるテーブルを作成
mysql> create table tb1M like tb1;
Query OK, 0 rows affected (0.47 sec)
■Aテーブルのレコードを削除
mysql> DELIMITER ;
mysql> DELETE FROM tb1;
Query OK, 5 rows affected (0.14 sec)
確認
mysql> select * from tb1;
Empty set (0.00 sec)
mysql> select * from tb1m;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.00 sec)
■元に戻す
mysql> insert into tb1 select * from tb1M;
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from tb1;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.00 sec)
■トリガ削除
mysql> drop trigger tr1;
Query OK, 0 rows affected (0.00 sec)
テーブルに対してある処理が行われると、それが引き金に成ってあるコマンドが実行される仕組みの事。
■Aテーブルのレコードを削除すると、Bテーブルにコピーされるトリガ(tr1)を作成
mysql> DELIMITER //
mysql> CREATE TRIGGER tr1(トリガ名) BEFORE DELETE ON tb1 FOR EACH ROW
-> BEGIN
-> INSERT INTO tb1M VALUES(OLD.bang,OLD.nama,OLD.tosi);
-> END
-> //
Query OK, 0 rows affected (0.11 sec)
■コピーされるテーブルを作成
mysql> create table tb1M like tb1;
Query OK, 0 rows affected (0.47 sec)
■Aテーブルのレコードを削除
mysql> DELIMITER ;
mysql> DELETE FROM tb1;
Query OK, 5 rows affected (0.14 sec)
確認
mysql> select * from tb1;
Empty set (0.00 sec)
mysql> select * from tb1m;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.00 sec)
■元に戻す
mysql> insert into tb1 select * from tb1M;
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from tb1;
+------+------+------+
| bang | nama | tosi |
+------+------+------+
| A101 | 佐藤 | 40 |
| A102 | 高橋 | 28 |
| A103 | 中川 | 20 |
| A104 | 渡辺 | 23 |
| A105 | 西沢 | 35 |
+------+------+------+
5 rows in set (0.00 sec)
■トリガ削除
mysql> drop trigger tr1;
Query OK, 0 rows affected (0.00 sec)
※コメント投稿者のブログIDはブログ作成者のみに通知されます