「Mysql/trigger」の版間の差分
提供: 初心者エンジニアの簡易メモ
行32: | 行32: | ||
以下データを入れると・・ | 以下データを入れると・・ | ||
− | + | insert into users(name) values('taro'); | |
− | + | select * from users; | |
− | + | +----+------+ | |
− | + | | id | name | | |
− | + | +----+------+ | |
− | + | | 1 | taro | | |
以下テーブルに自動で入っていることを確認 | 以下テーブルに自動で入っていることを確認 |
2018年3月20日 (火) 16:29時点における最新版
トリガー一覧
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