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

[SOLUCIONADO] Error de sintaxis en trigger

Estas en el tema de Error de sintaxis en trigger en el foro de Mysql en Foros del Web. Hola Resulta que tengo el siguiente trigger, he buscado por google para la creacion de variables y la sintaxis es esta, pero cuando voy ejecutarla ...
  #1 (permalink)  
Antiguo 31/07/2013, 03:42
 
Fecha de Ingreso: marzo-2013
Mensajes: 22
Antigüedad: 11 años
Puntos: 0
Error de sintaxis en trigger

Hola
Resulta que tengo el siguiente trigger, he buscado por google para la creacion de variables y la sintaxis es esta, pero cuando voy ejecutarla en MySQL(Heidi) me salta un error de sintaxis.

Código MySQL:
Ver original
  1. CREATE TRIGGER INS_EMP_GEN_BIS
  2.   BEFORE INSERT ON AUX_EMP
  3.   DECLARE V_DEPTNO INT;
  4.  
  5.  SELECT DEPTNO INTO V_DEPTNO FROM AUX_DEPT WHERE DEPTNO=NEW.DEPT_NO;
  6.  EXCEPTION
  7.  WHEN NO_DATA_FOUND THEN
  8.   INSERT INTO AUX_DEPT VALUES (NEW.DEPT_NO, NULL, NULL);

El error me lo da en la declaracion de variables, si encontrais alguno mas, os lo agradeceria mucho.

PD:Vengo de oracle y tengo problemas con MySQL.

Gracias por sus respuestas.

Última edición por gnzsoloyo; 31/07/2013 a las 04:13
  #2 (permalink)  
Antiguo 31/07/2013, 04:20
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 de sintaxis en trigger

Las declaraciones de variables deben ir dentro del bloque BEGIN/END:
Código MySQL:
Ver original
  1. CREATE TRIGGER INS_EMP_GEN_BIS
  2.   BEFORE INSERT ON AUX_EMP
  3.     DECLARE V_DEPTNO INT;
  4.     SELECT DEPTNO INTO V_DEPTNO
  5.     FROM AUX_DEPT
  6.     WHERE DEPTNO=NEW.DEPT_NO;
Respecto a las exceptions, no existen en MYSQL. Debes recordar que no hay un lenguaje lenguaje procedural estándar, por lo que para migrar rutinas debes consultar el manual de cada DBMS.
Lo que correspondería en ese caso es el uso de un HANDLER.

http://dev.mysql.com/doc/refman/5.6/...er-syntax.html
http://dev.mysql.com/doc/refman/5.6/...tatements.html
http://dev.mysql.com/doc/refman/5.6/...tatements.html
http://dev.mysql.com/doc/refman/5.6/...-handling.html
__________________
¿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: insert, select, sintaxis, sql, 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 18:41.