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

Error en trigger con phpMyAdmin

Estas en el tema de Error en trigger con phpMyAdmin en el foro de Mysql en Foros del Web. Amigos foreros tengo un problema al querer importar un trigger con el phpmyadmin. Cuando ejecuto lo siguiente en la venta de SQL: Código PHP: DELIMITER  ...
  #1 (permalink)  
Antiguo 23/02/2010, 07:48
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Error en trigger con phpMyAdmin

Amigos foreros tengo un problema al querer importar un trigger con el phpmyadmin.
Cuando ejecuto lo siguiente en la venta de SQL:
Código PHP:
DELIMITER $$
CREATE TRIGGER `opus`.`tia_support_requestAFTER INSERT ON opus.support_requests FOR EACH ROW
BEGIN
  
        
DECLARE cuerpo text;
        DECLARE 
quienMandoElSoporte VARCHAR (255);
        DECLARE 
paraQuienVaDirijido VARCHAR (255);
        DECLARE 
idParaQuien MEDIUMINT (8);
        
SELECT name INTO quienMandoElSoporte FROM members WHERE id = new.member;
        
SELECT members.namemembers.id INTO paraQuienVaDirijidoidParaQuien FROM membersprojects WHERE projects.id = new.project AND projects.owner members.id;
        
        
set cuerpo concat('Estimado/a 'paraQuienVaDirijido);
        
set cuerpo concat(cuerpo'El usuario ');
        
set cuerpo concat(cuerpoquienMandoElSoporte);
        
set cuerpo concat(cuerpo,' ha mandado un soporte sobre el proyecto:  ');
        
set cuerpo concat(cuerpo, (cast(new.project as char)));
        
set cuerpo concat(cuerpo' .<br> Para mas informaci&oacute;n ingrese al Sistema.');
        
        
INSERT INTO event_log (generated_bydescriptioneventevent_datestatusid_fromid_to)
        
values 
        
quienMandoElSoporte,
        
cuerpo,
        
'New_Support_Requests',
        
CURRENT_DATE,
        
0,
        new.
member,
        
idParaQuien
        
);
END;
$$
DELIMITER 
me da el siguiente error:

consulta SQL:

DELIMITER $$ CREATE TRIGGER `opus`.`tia_support_request` AFTER INSERT ON opus.support_requests
FOR EACH
ROW
BEGIN DECLARE cuerpo text;



MySQL ha dicho:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$
CREATE TRIGGER `opus`.`tia_support_request` AFTER INSERT ON opus.s' at line 1


Ya probe con cambiarle los delimitadores por //,$$, %% y nada sigo con el mismo error...
Alguien tiene idea de que puede estar mal??
Muchas gracias.
  #2 (permalink)  
Antiguo 23/02/2010, 07:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Error en trigger con phpMyAdmin

El trigger parece estar bien.

En phpmyadmin en la parte inferior de la ventana de consultas hay un campo llamado delimiter.
Pon ahí el símbolo que utilices en la ejecución del trigger.

saludos martin
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/02/2010, 08:01
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Error en trigger con phpMyAdmin

Antes que nada muchas gracias por responder huesos52.
Me fije y el delimiter de mi ventana de consutlas es ;
Por lo tanto reemplaze el $$ por ;; y me salio este error ahora:


Error
consulta SQL:

DELIMITER;



MySQL ha dicho:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER' at line 1


Alguna idea??
  #4 (permalink)  
Antiguo 23/02/2010, 08:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Error en trigger con phpMyAdmin

Cambia la ventanita a $$ y deja el trigger como está.

Si dejas el delimiter como ;; va a tener confusión en el cuerpo del trigger.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 23/02/2010, 08:13
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Error en trigger con phpMyAdmin

De nuevo muchisimas gracias por responder tan rapido!

hice lo que dijiste, cambie en la ventana de query por $$ y ahora me sale otro error (parece menos grave igualmente!):

Error
consulta SQL:

DELIMITER $$

MySQL ha dicho:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER' at line 1



Alguna otra idea??
  #6 (permalink)  
Antiguo 23/02/2010, 08:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Error en trigger con phpMyAdmin

Esperemos a alguien que maneje phpmyadmin.

Los triggers siempre los corro desde la consola sin problemas pero en varios post han comentado que ese es el problema.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 23/02/2010, 08:22
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Error en trigger con phpMyAdmin

Entiendo y te agradezco mucho tu ayuda.
Asi da gusto venir a un foro...

Muchas gracias huesos52!!
  #8 (permalink)  
Antiguo 23/02/2010, 09:12
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Error en trigger con phpMyAdmin

Les recomiendo que usen el TOAD for MySQL, no requiere licencia esta version de toad ya que es para MySQL.
Desde este programa pueden gestionar todo lo que es triggers ,procedures, views, etc de manera mucho mas facil que en phpmyadmin.
Es una lastima que en donde trabajo no pueda bajarlo, por razones de seguridad no me dejan, pero la verdad que phpmyadmin deja mucho que desear con el tema de manejo de triggers.

Si alguien tiene idea de como cargar un trigger en phpmyadmin por favor que lo exponga.

Gracias.
  #9 (permalink)  
Antiguo 23/02/2010, 09:48
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: Error en trigger con phpMyAdmin

Solucionado.
El error esta en que yo agregaba la sentencia delimiter // y despues en la ventana de query de phpmyadmin ingresebaa en delimitador // por lo tanto estaba declarando dos veces el delimitador //.

Dejo la sentencia para que vean como es la manera correcta:

DROP TRIGGER IF EXISTS `opus.tia_srvy_questions`//
CREATE TRIGGER opus.tia_srvy_questions AFTER INSERT ON opus.srvy_questions FOR EACH ROW
BEGIN

if (new.answer_type = 3)
THEN
insert into srvy_qst_option (id_srvy_qst,description)
values
(
new.id,
'Generado automaticamente por ser campo tipo TEXT'
);
END IF;


END//


Y en la ventana de query pongan como delimitador //

Saludo y gracias!!

Última edición por martin0341; 24/02/2010 a las 05:06

Etiquetas: phpmyadmin, 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 13:40.