mysql - 触发器中的 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,对吗?
非常欢迎任何帮助。
解决方案
推荐阅读
- excel - .csv 文件似乎正在将数字转换为日期并隐藏原始值
- javascript - Electron 在编译版本中不显示图像
- extjs6-classic - 如何设置 RowEditing 插件的样式
- google-analytics - Google Analytics 中是否有类似 Adobe Analytics 的“交易 ID”概念?
- android - 定期检查 wifi 和蜂窝信号强度连接的最佳方法是什么,如果信号很弱,向用户展示?
- python - 向量化计算每个类别最常见的词
- php - 将 PHP SQL 查询回显到网页
- rspec - rails 6 和 rspec 中的并行测试
- python - 梯度的点积与使用python numpy的2d场梯度的梯度
- reactjs - 如何使用 React-chartjs-2 设置条形图的轴标签样式