MySQL トリガーを作成する

  • 作成日 2022.01.20
  • 更新日 2022.10.17
  • mysql
MySQL トリガーを作成する

MySQLで、トリガーを作成する手順を記述してます。

環境

  • OS ubuntu21.10
  • MySQL Ver 8.0.27-0ubuntu0.21.10.1 for Linux on x86_64 ((Ubuntu))

手順

トリガーを作成するには、「CREATE TRIGGER」を使用します。

CREATE TRIGGER トリガー名;

実際に、「tbl1」が更新されたら以下の「tbl2」というテーブルにデータをinsertするトリガーを作成します。

CREATE TABLE `tbl2` 
(`id` int NOT NULL AUTO_INCREMENT
,`name` varchar(10) DEFAULT NULL
,`create_at` DATETIME NOT NULL
,PRIMARY KEY (`id`))
ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4

トリガーを作成する。

DROP TRIGGER IF EXISTS hoge;

delimiter //
CREATE TRIGGER hoge
AFTER UPDATE ON tbl1
FOR EACH ROW
BEGIN
 INSERT INTO tbl2(name,create_at) values('UPDATE',now());
END;
//

実際に「tbl1」を更新してみます。

UPDATE `tbl1` SET `age` = '50' WHERE (`id` = '5');

更新されると「tbl2」も更新されます。