mysql抛出IF错误,我该怎么办?

时间:2020-02-18 23:50:52

标签: mysql mysql-workbench

 create trigger TR_03
  before update
  on empleados
  for each row
 begin
  if updating('idempleado') then
   insert into controlCambio values("superusuarioalber",now(), old.idempleado, new.idempleado);
  end if;
  if updating('nombre') then
   insert into controlCambios values("superusuarioalber",now(), old.nombre, new.nombre);
  end if;
  if updating('documento') then
   insert into controlCambios values("superusuarioalber",now(), old.documento, new.documento);
  end if;
  if updating('cargo') then
   insert into controlCambios values("superusuarioalber",now(), old.cargo, new.cargo);
  end if;
 end TR_03;

1 个答案:

答案 0 :(得分:0)

您几乎完全正确,您的终端TR_03在mysql中是不允许的。 我也认为update()是您数据库中的功能 所以用

DELIMITER $$
create trigger TR_03 
before update on empleados 
for each row 
begin 
  if updating('idempleado') then 
    insert into controlCambio values("superusuarioalber",now(), old.idempleado, new.idempleado); 
  end if; 
  if updating('nombre') then 
    insert into controlCambios values("superusuarioalber",now(), old.nombre, new.nombre);   
  end if; 
  if updating('documento') then 
    insert into controlCambios values("superusuarioalber",now(), old.documento, new.documento); 
  end if; 
  if updating('cargo') then 
    insert into controlCambios values("superusuarioalber",now(), old.cargo, new.cargo); 
  end if; 
end $$
DELIMITER ;