facebook twitter hatena line email

「Mysql/trigger」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
行46: 行46:
 
  +----+---------------+
 
  +----+---------------+
 
  |  1 | username=taro |
 
  |  1 | username=taro |
 +
 +
==トリガー削除==
 +
DROP TRIGGER command1;
  
 
==実行権限が違うと以下エラーが出る==
 
==実行権限が違うと以下エラーが出る==
 
  ERROR 1449 (HY000): The user specified as a definer ('root'@'localhost') does not exist
 
  ERROR 1449 (HY000): The user specified as a definer ('root'@'localhost') does not exist

2018年3月20日 (火) 16:27時点における版

トリガー一覧

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