MySQL触发语法错误?

时间:2017-10-18 16:18:50

标签: mysql

delimiter ||
create trigger bins_chk
before insert on VEHICLE 
on each row
begin
	if (new.`Vehicle_type`= 'car') then
		if (new.`Tonnage` != null or new.`No_Seats` <> null) then
			signal sqlstate "45000"
				set message_text "Do not match!";
	elseif new.`Vehicle_type`= 'suv' then
		if new.`Tonnage`<>null or new.`Engine_size`<>null then
			signal sqlstate "45000"
				set message_text "Do not match!";
	elseif new.`Vehicle_type`= 'truck' then
		if new.`Engine_size`<>null or new.`No_Seats`<>null then
			signal sqlstate "45000"
				set message_text "Do not match!";
	end if;
end ||
delimiter;

问题在哪里,我只是不知道如何修复它。

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在每行附近使用的语法如果是新的则开始。 Vehicle_type = 'car'   如果是新的。Tonnage <> null'在第3行

1 个答案:

答案 0 :(得分:0)

您需要使用FOR EACH ROW代替ON EACH ROW(请参阅CREATE TRIGGER Syntax)。