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

problema con trigger

Estas en el tema de problema con trigger en el foro de Mysql en Foros del Web. hola a todos, bien, en esta ocasion tengo un problema al crear un trigger desde el phpmyadmin en una BD mysql tratare de explicar lo ...
  #1 (permalink)  
Antiguo 28/04/2009, 09:27
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
problema con trigger

hola a todos,
bien, en esta ocasion tengo un problema al crear un trigger desde el phpmyadmin en una BD mysql
tratare de explicar lo que quiero hacer:

antes q nada debo decir que tengo una tabla propietario (...de animales) que tiene un campo "cod", que es su llave primaria, ademas tiene un campo nombre,etc
pero cuenta ademas con un campo cant_mascotas (que es la cantidad de mascotas que posee dicho propietario), correcto?

por otro lado tengo otra tabla llamada animal, que tiene tambien su llave primaria "cod",propietario_cod (que es la llave foranea por la cual se relaciona con el cod de su propietario), consta de otros campos ademas

ahora bien, tengo estas dos tablas, y lo que pretendo hacer es lo sgte, para mi sistema hecho en php, quiero hacer que cada que inserte un nuevo animal y le asigne un propietario_cod, se actualize el campo cant_mascotas en la tabla propietario, incrementando su valor en +1, se entiende??

he decidido crear el sgte trigger para dicha tarea:

Código:
DELIMITER //
CREATE  TRIGGER trigger_mascota 
AFTER INSERT ON animal 
FOR EACH ROW BEGIN 
   UPDATE propietario SET cant_mascotas=(cant_mascotas+1) WHERE cod=propietario_cod;
END;
//
mas sin embargo me sale el sgte error cuando lo ejecuto desde el phpmyadmin de XAMPP:

#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 ';
//' at line 5


alguna ayuda,recomendacion?. Creo que el problema pasa por los delimitadores, pero ya he probado de diferentes maneras pero me siguen saliendo errores
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #2 (permalink)  
Antiguo 28/04/2009, 11:29
 
Fecha de Ingreso: abril-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 1
Respuesta: problema con trigger

Código:
DELIMITER //
CREATE  TRIGGER trigger_mascota 
AFTER INSERT ON animal 
FOR EACH ROW BEGIN 
   UPDATE propietario SET cant_mascotas=(cant_mascotas+1) WHERE cod=NEW.propietario_cod;
END; //
DELIMITER ;
imagine que propietario_cod esta en la tabla trigger_mascota y ahi te faltaba la sentencia NEW para hacer referencia al campo modificado de la tabla.
Tambien el DELIMITER del final para regresar el delimitador a el default... bueno espero mis sugerencias que es lo unico que noto te puedan ayudar..!!!!

Última edición por manoloss; 28/04/2009 a las 12:18
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 09:38.