【问题标题】:Creating Trigger with a concatenated string with a date in MySQL在 MySQL 中使用带有日期的连接字符串创建触发器
【发布时间】:2021-09-29 04:31:31
【问题描述】:

我正在尝试弄清楚如何使用包含日期的串联字符串创建触发器插入。

我正在创建的触发器是在 tbl_employee 上创建的。每次我将新员工插入表中时,我希望它使用以下信息更新另一个名为 tbl_employee_audit 的表。

id audit_data
1 New employee with ID = 1221 was added on Sep 21, 2016

这是我创建触发器的代码

CREATE TRIGGER adding_employee
AFTER INSERT
ON tbl_employee FOR EACH ROW
INSERT INTO tbl_employee_audit(ID, AUDIT_DATA) 
VALUES(ID, CONCAT('New employee with ID = ', new.emp_id, ‘was added on’, DATE));

问题是我可以让它在没有最后添加的日期的情况下工作,但如果我尝试使用日期,在将新记录插入 tbl_employees 时会出错。

错误: #1054 - “字段列表”中的未知列“日期”

我在这里错过了什么?

提前致谢

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:

    也许您只想要当前日期?

    CREATE TRIGGER adding_employee AFTER INSERT
    ON tbl_employee FOR EACH ROW
        INSERT INTO tbl_employee_audit(ID, AUDIT_DATA) 
            VALUES(ID, CONCAT('New employee with ID = ', new.emp_id, ' was added on ', CURRENT_DATE));
    

    【讨论】:

      【解决方案2】:

      要获取您的日期,您需要对其进行格式化

      SELECT DATE_FORMAT(CURRENT_DATE, "%b %d, %Y")
      
      | DATE_FORMAT(CURRENT_DATE, "%b %d, %Y") | | :------------------------------------------------- | | 2021 年 7 月 21 日 |

      db小提琴here

      CREATE TRIGGER adding_employee AFTER INSERT
      ON tbl_employee FOR EACH ROW
          INSERT INTO tbl_employee_audit(ID, AUDIT_DATA) 
              VALUES(ID, CONCAT('New employee with ID = ', new.emp_id, ' was added on ', DATE_FORMAT(CURRENT_DATE, "%b %d, %Y")));
      

      【讨论】:

      猜你喜欢
      • 2015-01-22
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多