Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   no me compila!!! ayuda MYSQL (https://www.clubdelphi.com/foros/showthread.php?t=61132)

CLUSTERBIT 27-10-2008 12:55:50

no me compila!!! ayuda MYSQL
 
hola amigos foreros les presento mi problema, no puedo compilar este trigger
por mas que que le busco el error no se lo encuentro quizas ustedes tiene un mejor ojo y me puedan ayudar, bueno este trigger lo quiero correr en mysql
pero me reclama por un error de syntaxis y no se donde esta


saludos :confused:

CREATE TRIGGER prueba BEFORE UPDATE ON td_persona
FOR EACH ROW
BEGIN
DECLARE maximo int(11);
SET maximo =(SELECT MAX(audi_id) FROM ts_auditoria);
end;
if(:old.pers_rut <> :new.pers_rut)then
begin
INSERT INTO ts_auditoria(audi_id,audi_ip,audi_fecha,audi_tabla,audi_campo, audi_valor_anterior, audi_valor_actual) VALUES(maximo,'255.255.255.0',(DATE_FORMAT(now(),'%Y/%m/%d')),'td_persona','pers_rut', :old.pers_rut,:new.pers_rut);
end if;

poliburro 27-10-2008 14:42:34

dos cosas,

Primero, por favor usa los marcadores de sintaxis, nos ayudarás a ayudarte de mejor manera.

Segundo, el end de tu script debe ir en después del último bloque de código.

Saludos

CLUSTERBIT 27-10-2008 19:16:05

Cita:

Empezado por poliburro (Mensaje 322627)
dos cosas,

Primero, por favor usa los marcadores de sintaxis, nos ayudarás a ayudarte de mejor manera.

Segundo, el end de tu script debe ir en después del último bloque de código.

Saludos

gracias por responder poliburro y bueno lo agrego de nuevo
Código SQL [-]
CREATE TRIGGER prueba BEFORE UPDATE ON td_persona
FOR EACH ROW
BEGIN
DECLARE @maximo int(11);
SET @maximo =(SELECT MAX(audi_id) FROM ts_auditoria);
if(OLD.pers_rut <> :NEW.pers_rut)then
begin
INSERT INTO ts_auditoria VALUES(@maximo,'255.255.255.0',(DATE_FORMAT(now(),'%Y/%m/%d')),'td_persona','pers_rut',:OLD.pers_rut,:NEW.pers_rut);
end;
if(:OLD.pers_dv <> :NEW.pers_dv)then
begin
INSERT INTO ts_auditoria VALUES(@maximo,'255.255.255.0',(DATE_FORMAT(now(),'%Y/%m/%d')),'td_persona','pers_dv',:OLD.pers_dv,:NEW.pers_dv);
end;

ahí esta mas completo la verdad es que nose cual es mi error

saludos

poliburro 27-10-2008 21:31:22

Código SQL [-]
 
CREATE TRIGGER prueba BEFORE UPDATE ON td_persona
FOR EACH ROW
BEGIN
  DECLARE @maximo int(11);
  SET @maximo =(SELECT MAX(audi_id) FROM ts_auditoria);
  if(OLD.pers_rut <> :NEW.pers_rut)then
     begin
        INSERT INTO ts_auditoria 
        VALUES(@maximo,'255.255.255.0',(DATE_FORMAT(now(),'%Y/%m/%d')),'td_persona','pers_rut',:OLD.pers_rut,:NEW.pers_rut);
     end;
  if(:OLD.pers_dv <> :NEW.pers_dv)then
     begin
         INSERT INTO ts_auditoria 
         VALUES(@maximo,'255.255.255.0',(DATE_FORMAT(now(),'%Y/%m/%d')),'td_persona','pers_dv',:OLD.pers_dv,:NEW.pers_dv);
     end;
END;


La franja horaria es GMT +2. Ahora son las 09:36:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi