facebook twitter hatena line email

Mysql/trigger

提供: 初心者エンジニアの簡易メモ
2018年3月20日 (火) 16:29時点におけるAdmin (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

トリガー一覧

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