facebook twitter hatena line email

「Mysql/trigger」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
行32: 行32:
  
 
以下データを入れると・・
 
以下データを入れると・・
  insert into users(name) values('taro');
+
insert into users(name) values('taro');
 
   
 
   
  select * from users;
+
select * from users;
  +----+------+
+
+----+------+
  | id | name |
+
| id | name |
  +----+------+
+
+----+------+
  |  1 | taro |
+
|  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