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

consulta trigger

Estas en el tema de consulta trigger en el foro de Bases de Datos General en Foros del Web. Hola como puedo crear un trigger, haciendo una condicional busque y encontré esto pero me tira error de sintaxis @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original ...
  #1 (permalink)  
Antiguo 11/07/2016, 22:30
 
Fecha de Ingreso: agosto-2011
Mensajes: 75
Antigüedad: 12 años, 8 meses
Puntos: 0
consulta trigger

Hola como puedo crear un trigger, haciendo una condicional
busque y encontré esto pero me tira error de sintaxis

Código MySQL:
Ver original
  1. CREATE TRIGGER `familiares` AFTER INSERT ON `familia`
  2. IF (NEW.idPersona < 191) THEN
  3.             INSERT INTO rpfamiliares (nombre,apellido) VALUES (NEW.nombre,NEW.apellido)
  4.       ELSE
  5.             return false;

*probe sacando cada linea y solo funciona el Insert

Uso mysql, asi aparece en mi phpmyadmin
Versión del servidor: 10.1.14-MariaDB - MariaDB Server
Este es el msje de error:
Cita:
MySQL ha dicho: Documentación #1064 - You have an error in your SQL syntax;
espero que me ayuden
gracias

Última edición por gnzsoloyo; 12/07/2016 a las 07:03
  #2 (permalink)  
Antiguo 12/07/2016, 07:01
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: consulta trigger

usas mariadb o mysql???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/07/2016, 07:06
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: consulta trigger

A mi me parece que es un problema habitual al usar phpMyadmin en la carga de TRIGGERs o Sp, ya que desconocen el uso correcto de la ventana de SQL para eso.
En phpMyadmin tienen que poner el separador de setencias en un TextBox, y siempre lo olvidan.

Tienen que ponerlo en ese que se ve abajo del area de codigo:



De ese modo al ejecutar el scritp (sea SP o trigger), este se toma en conjunto como un solo objeto, mientras que si lo omiten entonces intentará interpretar cada linea separadamente, disparando habitualmente el error que menciona.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 12/07/2016 a las 10:06
  #4 (permalink)  
Antiguo 12/07/2016, 10:30
 
Fecha de Ingreso: agosto-2011
Mensajes: 75
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: consulta trigger

Cita:
Iniciado por gnzsoloyo Ver Mensaje

De ese modo al ejecutar el scritp (sea SP o trigger), este se toma en conjunto como un solo objeto, mientras que si lo omiten entonces intentará interpretar cada linea separadamente, disparando habitualmente el error que menciona.
Gracias use el delimitador, pero me sale este error


Cita:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'END IF' at line 6
  #5 (permalink)  
Antiguo 12/07/2016, 10:41
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: consulta trigger

Bueno... un TRIGGER no posee valores de retorno. No es una SF, No confundas.
__________________
¿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 12/07/2016, 11:37
 
Fecha de Ingreso: agosto-2011
Mensajes: 75
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: consulta trigger

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bueno... un TRIGGER no posee valores de retorno. No es una SF, No confundas.
claro solo deje el IF
COMO EN LA IMAGEN
Código MySQL:
Ver original
  1. IF NEW.idPersona < 191 THEN
  2.             INSERT INTO rpfamiliares (nombre,apellido) VALUES (NEW.nombre,NEW.apellido);

Última edición por gnzsoloyo; 12/07/2016 a las 12:11
  #7 (permalink)  
Antiguo 12/07/2016, 12:14
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: consulta trigger

Código MySQL:
Ver original
  1. CREATE TRIGGER `familiares` AFTER
  2.   `familia` FOR EACH ROW
  3.     IF NEW.idPersona < 191 THEN
  4.   rpfamiliares(nombre, apellido)
  5. VALUES(NEW.nombre, NEW.apellido)
  6.   END IF;
No debería dispararte ningun error...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 12/07/2016, 13:09
 
Fecha de Ingreso: agosto-2011
Mensajes: 75
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: consulta trigger

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código MySQL:
Ver original
  1. CREATE TRIGGER `familiares` AFTER
  2.   `familia` FOR EACH ROW
  3.     IF NEW.idPersona < 191 THEN
  4.   rpfamiliares(nombre, apellido)
  5. VALUES(NEW.nombre, NEW.apellido)
  6.   END IF;
No debería dispararte ningun error...
esta igual, pero tira error, sera por la version ?

le saque el ; que indica como error, y sale este error
  #9 (permalink)  
Antiguo 12/07/2016, 13:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: consulta trigger

mysql comparte sintaxis con mariadb?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 12/07/2016, 13: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: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta trigger

Código MySQL:
Ver original
  1. CREATE TRIGGER `familiares` AFTER
  2.   `familia` FOR EACH ROW
  3.     IF NEW.idPersona < 191 THEN
  4.   rpfamiliares(nombre, apellido)
  5. VALUES(NEW.nombre, NEW.apellido); -- Cuidado con los delimitadores internos de sentencias...
  6.   END IF;
__________________
¿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: mysql, select, server, 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 19:05.