Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/05/2013, 14:11
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: error en triggers con PDO

Tres consejos básicos:
1) No crees TRIGGERs desde programación. No es una buena práctica y está sujeto a errores probables, porque los lenguajes de programación no manejan bien ciertas estructuras propias de la creación de rutinas.
2) Nunca uses el pipe (|), el ampersand (&) e incluso el porcentual (%)como delimitador, y menos con un único caracter. Esos símbolos se usan para operaciones propias del lenguaje SQL y pueden dar resultados erróneos en la ejecución. Por algo el manual de MySQL usa "$$" en los ejemplos, ¿no te parece?

3) No se usan DELIMITERS en la creacion de rutinas almacenadas desde programación. No es funcional porque es exclusivamente un comando de consola o script de SQL, y las librerías no lo entienden.

Envía a ejecutar directamente primero
Código MySQL:
Ver original
  1. DROP TRIGGER IF EXISTS categories_bd;
Y luego esto (no, no se puede hacer en una única operación):

Código MySQL:
Ver original
  1. CREATE TRIGGER categories_bd BEFORE DELETE ON categories
  2.         FOR EACH ROW BEGIN
  3.             DELETE FROM forums WHERE fk_id_categorie = OLD.id_categorie;
  4.         END
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)