2017-10-18 2 views
0

MySQL Trigger Syntaxfehler?

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

wo ist das Problem, ich weiß nur nicht, wie es zu beheben.

Fehler 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version für die richtige Syntax entspricht, die in der Nähe 'jeder Zeile zu verwenden ist, wenn neu. Vehicle_type = 'car' dann wenn neu. Tonnage <> null 'in Zeile 3

+0

Für jede Zeile nicht in jeder Zeile –

+0

BUG! '<> null' macht nicht, was du denkst. Ändern Sie zu "IS NOT NULL". –

Antwort