Mysql/trigger
提供: 初心者エンジニアの簡易メモ
トリガー一覧
SHOW TRIGGERS;
サンプル
usersに入れると自動で、commandsにデータが入るように
create table users ( id int unsigned primary key auto_increment, name varchar(31) );
create table commands ( id int unsigned primary key auto_increment, value varchar(31) );
以下トリガー作成
DELIMITER $$ CREATE TRIGGER command1 AFTER INSERT ON users FOR EACH ROW BEGIN declare str CHAR(255); SET str = concat('username=', new.name); INSERT into commands SET value=str; END; $$ DELIMITER;
以下データを入れると・・
insert into users(name) values('taro'); select * from users; +----+------+ | id | name | +----+------+ | 1 | taro |
以下テーブルに自動で入っていることを確認
select * from commands; +----+---------------+ | id | value | +----+---------------+ | 1 | username=taro |
トリガー削除
DROP TRIGGER command1;
実行権限が違うと以下エラーが出る
ERROR 1449 (HY000): The user specified as a definer ('root'@'localhost') does not exist