【问题标题】:how do we provide coldfusion's session value in to triggers in mysql5?我们如何将coldfusion的会话值提供给mysql5中的触发器?
【发布时间】:2011-02-17 08:55:07
【问题描述】:

在 mysql5 中实现触发器时,我可以传递我的 Coldfusion 应用程序中的任何会话值(如用户名、createdBy 等)。

创建触发用户_After_Insert 插入用户之后 每一行 插入审计日志(RequisitionID、ApplicantID、ColumnName、OldID、NewID、Description、CreatedBy、CreatedDate) 价值观 (0,0,'',0,0,CONCAT('UserID 为 ',new.UserID,' 的新用户已创建。'), session.userName, curdate() );

在上述查询中,我必须向 auditLog 表的“CreatedBy”列提供“session.userName”值,因为“CreatedBy”列不在“user”表中,这就是为什么我必须从 Coldfusion 会话中提供它。

如果有人可以帮助解决这个问题,我们将不胜感激。

谢谢
尤加尔

【问题讨论】:

    标签: mysql triggers coldfusion-8


    【解决方案1】:

    创建一个user defined variable 并在您的触发器中使用它:

    CREATE TRIGGER Users_After_Insert
    AFTER insert ON users
    FOR EACH ROW
    INSERT INTO auditlog (RequisitionID,ApplicantID,ColumnName,OldID,NewID,Description,CreatedBy,CreatedDate)
    values
    (0,0,'',0,0,CONCAT('New user with UserID ',new.UserID,' is created.'),
     @userName, curdate()
    );
    

    在执行 INSERT 之前,首先要设置用户名:

    SET @userName = 'Shooter';
    INSERT INTO ...;
    

    但是你为什么不为此使用stored procedure 呢?使用触发器,可能会出错,您可能会忘记设置变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 2019-09-22
      • 2018-05-20
      • 1970-01-01
      • 2020-07-26
      • 2021-05-20
      • 1970-01-01
      相关资源
      最近更新 更多