需求:创建触发器tri_OrderDetailInsertUpdate,当在 orderdetail表中插入或修改订单时,计算 orders表中相关订单的TotalPrice 。
CREATE TRIGGER tri_OrderDetailInsertUpdate
AFTER UPDATE OR INSERT ON orderdetail FOR EACH ROW
BEGIN
UPDATE orders
SET TotalPrice=(SELECT SUM(Amount*Price*Discount) FROM book JOIN orderdetail ON book.BookCode=orderdetail.BookCode GROUP BY orderdetail.OrderCode)
WHERE OrderCode=new.OrderCode
END;
报错:1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OR INSERT ON orderdetail FOR EACH ROW
BEGIN
UPDATE orders
SET TotalPrice=(SEL' at line 2
在https://blog.csdn.net/home_zhang/article/details/86590527 这篇文章中写的也是insert or update
因此到底有没有 insert or update 这种写法呢?我用着是报错,下载的Navicat也是最新版的