Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/10/2008, 08:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: no me compila!!! ayuda MYSQL

Estás dejando una parte del código fuera del cuerpo del trigger, colocando un campo que no estás ingresando y además poniendo un caracter cuya utilidad yo no conozco en MySQL (":").
El cuerpo del trigger (como el de los SP o las funciones), se encierra en un conjunto delimitador por BEGIN/END, los cuales no pueden anidarse NUNCA.
El código quedaría mas o menos así (sólo para consola, si usas otra cosa debes decirlo):
Código sql:
Ver original
  1. DELIMITER $$
  2. FROP TRIGGER IF EXISTS prueba$$
  3. CREATE TRIGGER prueba BEFORE UPDATE ON td_persona
  4. FOR EACH ROW
  5. BEGIN
  6. DECLARE maximo INT(11);
  7. SET maximo =(SELECT MAX(audi_id) FROM ts_auditoria);
  8. IF (OLD.pers_rut <> NEW.pers_rut) THEN
  9.  INSERT INTO ts_auditoria(audi_id,audi_ip,audi_fecha,audi_tabla ,audi_campo,  audi_valor_anterior, audi_valor_actual)
  10. VALUES(maximo,'255.255.255.0',(DATE_FORMAT(now(),' %Y/%m/%d')),NULL,'pers_rut', OLD.pers_rut,NEW.pers_rut);
  11. END IF;
  12. END$$
  13. DELIMITER ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)