PDA

Ver la Versión Completa : no me compila!!! ayuda MYSQL


CLUSTERBIT
27-10-2008, 12:55:50
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
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 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
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;