我在MySQL中创建一个触发器让我知道WHO(哪个mysql用户)正在对特定的表进行更新.
我知道MySQL有一个函数CURRENT_USER(),但是在触发器被创建时,或者在触发器被调用时插入用户名?
到目前为止,这是我的触发器.我想在“内容”列中插入用户名.
delimiter |
CREATE TRIGGER update_product_procedure
BEFORE UPDATE ON product_procedure
FOR EACH ROW BEGIN
INSERT INTO trigger_logs SET
content = 'This is a test', postDate=NOW();
END;
|
解决方法:
我会投入大量资金作为调用者,但从http://bugs.mysql.com/bug.php?id=5861开始:
SQL标准说:“触发的动作始终在下执行
包含触发器的架构所有者的授权.“这意味着
在MySQL中我们应该在用户的授权下执行触发器体
创建了触发器,而不是发出调用此触发器的语句的人.
道歉,我认为这是一个显而易见的问题:-(
问候
编辑:user()给调用者