尝试创建触发器时收到此错误-#1064-您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在'DECLARE orderCount INT附近使用正确的语法;
SET orderCount =(从第5行的'order'中选择COUNT(Order_No)个
delimiter /
CREATE TRIGGER CountOrders
BEFORE INSERT ON order
DECLARE orderCount INT;
SET orderCount = (SELECT COUNT(Order_No) FROM `order` WHERE Outlet = 1 AND
complete ='FALSE');
BEGIN
IF orderCount > 3
THEN SIGNAL 'To many orders pending'
END;
/
delimiter ;
任何建议将不胜感激。谢谢。
最佳答案
触发器中有几个问题。这是一个经过修改的。declare
部分应在begin
之后,并且order是保留字,因此需要用反引号引起来
delimiter //
CREATE TRIGGER CountOrders BEFORE INSERT ON `order`
for each row
begin
DECLARE orderCount INT;
SELECT COUNT(Order_No) into orderCount FROM `order`
WHERE Outlet = 1 AND complete ='FALSE' ;
IF orderCount > 3 then
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'To many orders pending';
end if;
end ;//
delimiter ;
https://dev.mysql.com/doc/refman/5.5/en/signal.html
关于mysql - MySQL触发器创建问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29374716/