Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error 1363 al crear un trigger.

Estas en el tema de Error 1363 al crear un trigger. en el foro de Mysql en Foros del Web. hola estoy intentando crear un trigger pero me tira el siguiente error. There is no OLD row in on INSERT trigger @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: ...
  #1 (permalink)  
Antiguo 03/01/2011, 09:46
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Error 1363 al crear un trigger.

hola estoy intentando crear un trigger pero me tira el siguiente error.

There is no OLD row in on INSERT trigger

Código MySQL:
Ver original
  1. DELIMITER$$
  2.  
  3. CREATE TRIGGER historial_propiedades_compra AFTER INSERT ON propiedades
  4.  
  5. INSERT INTO hpropiedades(iduFB,idaccion,fecha,idpropiedad)
  6. VALUES (OLD.iduFB,1,OLD.idpropiedad,NOW());
  7.  
  8. END$$
  9.  
  10. DELIMITER;

que puede ser?


saludos
  #2 (permalink)  
Antiguo 03/01/2011, 10:17
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error 1363 al crear un trigger.

A que la pseudovariable OLD sólo existe en UPDATE y DELETE, pero no en INSERT porque en ese caso estás insertando algo que no existe previamente.
Lo que corresponde usar es NEW, no OLD...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/01/2011, 10:30
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Error 1363 al crear un trigger.

Muchas gracias por la respuesta pero ahora lo cambie como me dijiste le coloque el NEW y me tiro otro error diferente me dice que esto

Unknown column 'iduFB' in 'NEW'

como si tomara NEW como una tabla.


saludos
  #4 (permalink)  
Antiguo 03/01/2011, 10:31
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Error 1363 al crear un trigger.

Muchas gracias por la respuesta pero ahora lo cambie como me dijiste le coloque el NEW y me tiro otro error diferente me dice que esto

Unknown column 'iduFB' in 'NEW'

como si tomara NEW como una tabla.


saludos
EDITO: que pena es que no se porque salio dos veces , me saluio un mensaje sobre algo de 15 segundos y pense que el post no se habia enviado.
  #5 (permalink)  
Antiguo 03/01/2011, 10:45
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error 1363 al crear un trigger.

NEW representa el nuevo registro que estás creando de la tabla "propiedades", que es donde está definido el trigger, por ende, toda referencia a un nombre de campo debe corresponder al nombre del campo correspondiente de la tabla "propiedades".
Si "iduFB" es un campo propio de la tabla "hpropiedades", cuyo valor proviene del insert, debes poner allí el nombre que corresponde al campo de la tabla "propiedades" de donde ese otro tomará el valor.
Si "iduFB" no se origina en un valor de "propiedades", simplemente no existe como dato en el trigger.

Ten en cuenta que los únicos datos que existen en un trigger son los valores que provienen del INSERT, o bien valores locales generados en la rutina del TRIGGER.
En MySQL un trigger no devuelve datos, ni recibe otros datos que no sean de la sentencia que lo disparó.

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 03/01/2011, 10:48
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error 1363 al crear un trigger.

Cita:
EDITO: que pena es que no se porque salio dos veces , me saluio un mensaje sobre algo de 15 segundos y pense que el post no se habia enviado.
Cuando recibas un mensaje que dice "algo" sobre alguna cosa, leelo... eso ayuda :)
Ene este caso lo que te dice es que debe pasar X tiempo entre dos posts enviados.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 03/01/2011, 11:03
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Error 1363 al crear un trigger.

Ok muchas gracias si entendi la idea ya pude solucionar el problema o no tanto problema solamnete una falta de atencion y consentracion mia XD ya que estaba colocando una tabla que no tenia el campo iduFB.


saludos
  #8 (permalink)  
Antiguo 03/01/2011, 11:51
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error 1363 al crear un trigger.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:57.