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

[SOLUCIONADO] Problemas con heidi SQL

Estas en el tema de Problemas con heidi SQL en el foro de Mysql en Foros del Web. Hola Resulta que he probado en heidi portable sentencias PL/SQL en TRIGGER, pero no me funcionan los IF Alguien que me ayuda por favor En ...
  #1 (permalink)  
Antiguo 15/06/2013, 11:52
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 6 meses
Puntos: 0
Problemas con heidi SQL

Hola
Resulta que he probado en heidi portable sentencias PL/SQL en TRIGGER, pero no me funcionan los IF
Alguien que me ayuda por favor


En eventos le he dado a las opciones de after y update
Código MySQL:
Ver original
  1.  
  2. IF new.nuevocampo=NULL THEN
  3.  
  4. INSERT INTO tablaprueba VALUES ('funciona');

Gracias con antelación
  #2 (permalink)  
Antiguo 15/06/2013, 11:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problemas con heidi SQL

Postea el código completo, porque lo que pones es insuficiente para saber cuál es la causa del fallo.
Por otro lado, si e devuelve errores, sería una muy buena idea que nos digas qué error es.
__________________
¿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 15/06/2013, 11:57
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problemas con heidi SQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Postea el código completo, porque lo que pones es insuficiente para saber cuál es la causa del fallo.
Por otro lado, si e devuelve errores, sería una muy buena idea que nos digas qué error es.
No da error, lo guardo, ejecuto la actualización y no inserta.

Código:
CREATE DEFINER=`root`@`localhost` TRIGGER `onUpdateBook` AFTER UPDATE ON `book` FOR EACH ROW BEGIN

IF new.Invoiced=NULL THEN

INSERT INTO error VALUES ('eldistinto');

END IF;
END;
Eso pone que ha creado heidi automáticamente
  #4 (permalink)  
Antiguo 15/06/2013, 12:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problemas con heidi SQL

Bueno, un par de detalles esenciales: NULL no es un dato, por lo tanto no se usan comparadores lógicos (=, <, >, !=), para comparar un valor NULL. NULL es un estado de indefinición o puntero a la nada y la nada... no es evaluable.
Código MySQL:
Ver original
  1. IF new.Invoiced IS NULL THEN
  2. ...

En segundo lugar, el resultado dependerá de cómo estés haciendo el UPDATE, porque como necesitas que sea NULL para que de un resultado, sólo funcionará si el el UPDATE fuese algo como:
Código MySQL:
Ver original
  1. UPDATE book
  2. SET Invoiced = NULL
  3. WHERE book_id = 1;
Pero no funcionará si pusieras:
Código MySQL:
Ver original
  1. UPDATE book
  2. SET Invoiced = ''
  3. WHERE book_id = 1;

o algo como
Código MySQL:
Ver original
  1. UPDATE book
  2. SET Invoiced = 0
  3. WHERE book_id = 1;
porque ni '' ni cero (0) son NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/06/2013, 12:07
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problemas con heidi SQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bueno, un par de detalles esenciales: NULL no es un dato, por lo tanto no se usan comparadores lógicos (=, <, >, !=), para comparar un valor NULL. NULL es un estado de indefinición o puntero a la nada y la nada... no es evaluable.
Código MySQL:
Ver original
  1. IF new.Invoiced IS NULL THEN
  2. ...

En segundo lugar, el resultado dependerá de cómo estés haciendo el UPDATE, porque como necesitas que sea NULL para que de un resultado, sólo funcionará si el el UPDATE fuese algo como:
Código MySQL:
Ver original
  1. UPDATE book
  2. SET Invoiced = NULL
  3. WHERE book_id = 1;
Pero no funcionará si pusieras:
Código MySQL:
Ver original
  1. UPDATE book
  2. SET Invoiced = ''
  3. WHERE book_id = 1;

o algo como
Código MySQL:
Ver original
  1. UPDATE book
  2. SET Invoiced = 0
  3. WHERE book_id = 1;
porque ni '' ni cero (0) son NULL.
No sé como darte las gracias, te daría un beso!!! un saludo

Etiquetas: campo, insert, sql, tabla
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 22:22.