在触发器中使用mysql用户

时间:2009-11-19 20:33:06

标签: mysql triggers

我在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;
|

1 个答案:

答案 0 :(得分:5)

我会投入大量资金作为调用者,但是来自http://bugs.mysql.com/bug.php?id=5861

SQL标准说:“触发的操作始终在下执行 包含触发器的架构所有者的授权。“这意味着 在MySQL中我们应该在用户的授权下执行触发器体 创建了触发器,而不是发出调用此触发器的语句的那个​​。

道歉,我认为这是一个显而易见的问题: - (

此致

编辑:user()给出调用者