【发布时间】:2019-10-04 03:12:09
【问题描述】:
我正在我的 PhpMyadmin SQL 选项卡中运行以下查询:
CREATE TRIGGER trg_bansach ON bill AFTER INSERT AS
BEGIN
UPDATE addbook
SET Quality = Quality - (
SELECT QualitySale
FROM inserted
WHERE book_id = addbook.book_id
)
FROM addbook
JOIN inserted ON addbook.book_id = inserted.book_id
END
但每次我收到此错误消息时:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“FROM addbook”附近使用的正确语法 WHERE addbook.book_id = 插入的.book_id END' 在第 10 行
【问题讨论】:
-
与 sql server 不同,mysql 使用 OLD 和 NEW 作为更新表。
-
使用分隔符
delimiter // CREATE TRIGGER trg_bansach ON bill AFTER INSERT AS BEGIN UPDATE addbook SET Quality = Quality - ( SELECT QualitySale FROM inserted WHERE book_id = addbook.book_id ) FROM addbook JOIN inserted ON addbook.book_id = inserted.book_id END; // delimiter ;
标签: mysql sql triggers phpmyadmin