I am not sure whats wrong with my code.
delimiter $$
CREATE TRIGGER updateRestaurantAtributes
AFTER UPDATE ON fields_data
FOR EACH ROW BEGIN
IF (NEW.fieldid = 1) THEN
UPDATE restaurants
SET address1 = NEW.data_txt
Where rid = NEW.itemid;
ELSE IF (NEW.fieldid = 2) THEN
UPDATE restaurants
SET address2 = NEW.data_txt
Where rid = NEW.itemid;
END IF;
END$$
The above version does not work. It says syntax error near “END”(Last line). But the something works when I use
delimiter $$
CREATE TRIGGER updateRestaurantAtributes
AFTER UPDATE ON fields_data
FOR EACH ROW BEGIN
IF (NEW.fieldid = 1) THEN
UPDATE restaurants
SET address1 = NEW.data_txt
Where rid = NEW.itemid;
END IF;
IF (NEW.fieldid = 2) THEN
UPDATE restaurants
SET address2 = NEW.data_txt
Where rid = NEW.itemid;
END IF;
END$$
I am not sure why. Am I missing something?
Instead of
ELSE IF, MySQL’s syntax usesELSEIF(without the space).Although you might be able to make it work with the space in
ELSE IFby adding an additionalEND IF. By using the space, you effectively initiate a secondIFstatement, which must be closed independently of the first outerIFstatement.