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;
答案 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 ;