用户ID在SQL触发器中插入

时间:2012-05-09 07:58:26

标签: mysql sql triggers

我一直在扫描网页寻找答案,但大多数人都使用编程语言来回答。我目前正在运行一个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的地方。提前谢谢。

2 个答案:

答案 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 .... 希望这个帮助