【问题标题】:Trigger after Insert value from another table从另一个表插入值后触发
【发布时间】:2014-07-02 04:49:01
【问题描述】:

我有两个表 Employee 和 Employee Log,我在插入后创建了一个触发器,我对使用来自员工的实体或值的插入后触发器没有问题,直接插入到 Log 表中,但是我如何从另一个插入值桌子?像 Admin_ID。我想要一个包含事务、日期时间和创建者的日志表。

谢谢。

  CREATE TRIGGER emp_log_af AFTER INSERT ON emp

  FOR EACH ROW

   BEGIN

     INSERT INTO emp_log (action,id,ts, ad_id)

     VALUES('create',NEW.id,NOW());

   END;  

【问题讨论】:

  • 到目前为止您尝试了什么,只需在此处提供您的代码?
  • ad_id 或 admin_id 是我的问题,我使用 C# 我的员工表不包含 admin_id 或 ad_id
  • 您在寻找CURRENT_USER吗?或SELECT SUBSTRING_INDEX(USER(),'@',1) from dual 拉自here
  • 谢谢你,yap current_user @TaW

标签: c# mysql triggers


【解决方案1】:

它不可能通过触发器我所做的就是让我创建一个存储过程的 max(id) 来做。

 DELIMITER $$

 CREATE PROCEDURE sp_insert_user_log
 (
    IN ia Varchar(12), 
    IN ie INT, 
    IN ix datetime  
 )

  BEGIN
   DECLARE id INT DEFAULT 0;
      SELECT MAX(user_id) INTO id FROM user ORDER BY user_id DESC LIMIT 1;
   BEGIN 
        INSERT INTO `user_log`(`action`, `user_id`, `employee_id`, `ts`) VALUES (ia, id, ie, ix);       
    END; 

   END$$


   DELIMITER ;

   DELIMITER $$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    相关资源
    最近更新 更多