首页 > 解决方案 > 触发器中的 FOR EACH ROW 导致语法错误 MYSQL

问题描述

我有以下代码:

CREATE TRIGGER `po_history_update` 
AFTER UPDATE ON `purchase_orders` 
FOR EACH ROW
  INSERT INTO purchase_order_status_histories (
    purchase_order_id,
    old_status_id,
    old_status_date,
    current_status_id,
    current_status_date,
    user_id,
    duration,
    created_at,
    updated_at
  ) VALUES (
    new.id,
    old.status_id,
    old.status_changed_date,
    new.status_id,
    new.status_changed_date,
    new.user_id,
    DATEDIFF(old.status_changed_date, new.status_changed_date),
    now(),
    now()
  )

这给了我一个语法错误,但它没有FOR EACH ROW但我不知道为什么。它一直在工作,直到我添加了更多列并且我只有一个语句,所以我不需要使用 DELIMITER 或 BEGIN...END,对吗?

非常欢迎任何帮助。

标签: mysqldatabasesyntaxtriggers

解决方案


推荐阅读