我一直在扫描网页寻找答案,但大多数人都使用编程语言来回答。我目前正在运行一个MySQL服务器,并希望跟踪staff
表,当更新工作人员职位时,触发器应将值插入staff_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的地方。提前谢谢。
答案 0 :(得分:0)
如果我理解正确,您需要执行userid
的人UPDATE
吗?如果userid
是MySQL用户名,只需使用SUBSTRING_INDEX(USER(),'@',1)
;否则,您需要提供应用程序代码中的userid
。
答案 1 :(得分:-1)
以下链接可帮助您找到答案。这给出了MySQL中的信息功能列表..
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html
实际上,您需要使用信息函数USER()根据您需要实现的逻辑从应用程序代码传递用户ID。
对于您的要求确实需要截断从“@”符号开始的所有内容,因为如果您使用的是信息功能,则函数用户的格式为user @ localhost .... 希望这个帮助