Mysql 在SQL触发器中插入用户ID
我一直在浏览网页寻找答案,但大多数人都是用编程语言来回答的。我目前正在运行一个MySQL服务器,希望跟踪Mysql 在SQL触发器中插入用户ID,mysql,sql,triggers,Mysql,Sql,Triggers,我一直在浏览网页寻找答案,但大多数人都是用编程语言来回答的。我目前正在运行一个MySQL服务器,希望跟踪staff表,当更新staff members位置时,触发器应将值插入staff\u audit表。现在最大的问题是如何访问用户id 迄今为止的代码: CREATE TRIGGER staff_aft_update AFTER UPDATE ON staff FOR EACH ROW INSERT INTO staff_audit ( sau_st_staf
staff
表,当更新staff members位置时,触发器应将值插入staff\u audit
表。现在最大的问题是如何访问用户id
迄今为止的代码:
CREATE TRIGGER staff_aft_update
AFTER UPDATE ON staff
FOR EACH ROW
INSERT INTO staff_audit
( sau_st_staffno, sau_st_position_before,
sau_st_position_after, sau_user_id, ts)
VALUES
( old.st_staffno, old.st_position,
new.st_position, userid);
其中,
userid
是我想要插入ID的地方。提前感谢。如果我理解正确,您想要执行更新的人的用户ID
?如果userid
是MySQL用户名,只需使用SUBSTRING_INDEX(USER(),'@',1)
;否则,您需要从应用程序代码中提供用户ID
。如果我理解正确,您需要执行更新的人员的用户ID
?如果userid
是MySQL用户名,只需使用SUBSTRING_INDEX(USER(),'@',1)
;否则,您需要从应用程序代码中提供用户ID
。以下链接将帮助您找到答案。这给出了MySQL中的信息函数列表
实际上,您需要使用信息函数USER()根据需要实现的逻辑从应用程序代码传递用户id
对于您的需求,确实需要截断从“@”符号开始的所有内容,因为函数用户的格式是user@localhost如果您正在使用信息功能。。。。
希望这有助于您找到答案。下面的链接将帮助您找到答案。这给出了MySQL中的信息函数列表
实际上,您需要使用信息函数USER()根据需要实现的逻辑从应用程序代码传递用户id
对于您的需求,确实需要截断从“@”符号开始的所有内容,因为函数用户的格式是user@localhost如果您正在使用信息功能。。。。
希望这有助于进入'staff\u aft\u update'table.mysql,但我也有权访问sql server。抱歉进入'staff\u aft\u update'table.mysql,但我也有权访问sql server。您不能为此使用CURRENT\u USER()
,因为触发器将在其定义者的帐户下运行。仅供参考,我的答案使用子字符串索引执行您提到的截断。您不能为此使用当前用户()
,因为触发器将在其定义者的帐户下运行。仅供参考,我的答案将使用子字符串索引执行您提到的截断。