Error 1064 on create trigger mysql trigger

407 Views Asked by At

I try to do tregger BEFORE UPDATE but keep getting an error I need to create trigger BEFORE UPDATE test what change and put that change to table logi

DROP TRIGGER IF EXISTS `logs`;

DELIMITER //
CREATE DEFINER=`ams`@`%` TRIGGER `logs` 
BEFORE UPDATE ON `faktury` FOR EACH ROW 
begin 
IF (new.uwagi != old.uwagi) THEN
BEGIN
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.uwagi," -> ", new.uwagi), new.lp_fvat, "FAKTURY" );
END; 
end if;
if (new.klient != old.klient) THEN
BEGIN                                                           
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.klient," -> ", new.klient), new.lp_fvat, "FAKTURY" );
END;
end if;
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.magazyn," -> ", new.magazyn), new.lp_fvat, "FAKTURY" );
END;
end if;
if (new.data_faktury != old.data_faktury) THEN
BEGIN             
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.data_faktury," -> ", new.data_faktury), new.lp_fvat, "FAKTURY" );
END;                                                           
end if;     
end //

Error:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ';
END;
end if;
if (new.klient != old.klient) THEN
BEGIN                 ...' at line 6

Could you please any one give me tha idea to solve this?

1

There are 1 best solutions below

4
On

try this :

DROP TRIGGER IF EXISTS `logs`;
DELIMITER //
CREATE DEFINER=`ams`@`%` TRIGGER `logs` 
BEFORE UPDATE ON `faktury` FOR EACH ROW 
begin 
IF (new.uwagi != old.uwagi) THEN
BEGIN
IF (new.uwagi != old.uwagi) THEN
BEGIN
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.uwagi," -> ", new.uwagi), new.lp_fvat, "FAKTURY" ));
END; 
end if;
if (new.klient != old.klient) THEN
BEGIN                                                           
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.klient," -> ", new.klient), new.lp_fvat, "FAKTURY" ));
END;
end if;
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.magazyn," -> ", new.magazyn), new.lp_fvat, "FAKTURY" ));
END;
end if;
if (new.data_faktury != old.data_faktury) THEN
BEGIN             
INSERT logs (`text_logi`, `lp`, `tabela_logi`) VALUES ( CONCAT(CONCAT("Zmiana magazynu: ",old.data_faktury," -> ", new.data_faktury), new.lp_fvat, "FAKTURY" ));
END;                                                           
end if; 
end//