尝试创建触发器时收到此错误-#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/

10-12 17:08