我有多个用户希望能够触发我的触发器,因为你不能在一个触发器中拥有多个定义器,我决定为每个用户设置多个触发器。
所以在我的一个表中我已经有一个名为system_after_insert的触发器,它被分配给root,现在我想让另一个触发器分配给admin,它将被称为system_after_insert_1,现在它们都有相同的内容并且在同桌。我已经创建了system_after_insert触发器,但现在当我尝试添加system_after_insert_1时,它返回错误说:
错误1064:您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以获得正确的语法 使用附近''在第1行
CREATE DEFINER=`admin`@`localhost` TRIGGER system_after_insert_1
AFTER INSERT ON `system_database`.atm_account
FOR EACH ROW
BEGIN
INSERT INTO `log_database`.system_logs
SET actionDone = 'insert',
employee = USER(),
logDate = NOW(),
tableChange = 'atm_account',
rowChange = NEW.atmID,
new_data = concat("Account #",NEW.accountNumber,", Pin:",NEW.pin,", Security Code:",NEW.securityCode,", Withdrawal Limit:",NEW.withdrawalLimit);
END
不是上面的代码与system_after_insert相同,唯一的区别是触发器名称和定义器。
答案 0 :(得分:1)
您可以在具有以下组合的表上创建最多6个触发器,直到mysql 5.6 version:
后/前
插入/更新/删除
意思是:
但是在mysql 5.7.2文档下面显示它是可能的,所以你可以在这里查看是否使用Mysql5.7.2。