Hola de nuevo franroa:
Creo que debes poner un poco más de atención a lo que lees en los manuales de MySQL o lo que ponemos en el Foro, porque estás cometiendo errores infantiles con tu código. Vayamos por partes:
Código:
CREATE TABLE files(
fileID BIGINT NOT NULL AUTO_INCREMENT,
fPath TEXT NOT NULL,/*UNIQUE*/
fDescription VARCHAR(250) NOT NULL,
fName VARCHAR (20) NOT NULL,T NULL,
fUploader INT NOT NULL,
PRIMARY KEY (fileID),
)ENGINE=INNODB;
Esta sentencia está mal por el código que está marcado en rojo, no sé si copiaste mal la sentencia o se cortó alguna parte, pero en la primer parte NO ESTÁS DEFINIENDO NINGÚN CAMPO, después solo pones T NULL, eso no corresponde a ninguna declaración, MySQL toma la coma como separador de la definición de cada campo, por lo tanto, toma T como un campo, pero no colocas ningún tipo de datos, ni nada por el estilo. En la última parte, después del PRIMARY KEY (fileID) NO DEBES COLOCAR NINGUNA COMA, porque te repito indica separador de campos... la sentencia debería quedar así:
Siguiendo con los errores:
Código:
DELIMITER ;;
CREATE TRIGGER 'insert_file' AFTER INSERT ON 'files' FOR EACH ROW BEGIN
INSERT INTO filedescriptions (fileID, fName, fDescription)
VALUES (new.fileID, new.fName, new.fDescription);
END;;
checa esta liga:
http://dev.mysql.com/doc/refman/5.0/es/legal-names.html Cita: El carácter de encomillado de identificador es el acento grave: ('`'):
la comilla, tal como la colocas indica una CADENA DE TEXTO, para definir los nombres de los objetos de BD debes utilizar el ACENTO GRAVE (`) o en su defecto omitir este caracter...
Tu sentencia debería quedar así:
Código MySQL:
Ver originalDELIMITER ;;
INSERT INTO filedescriptions
(fileID
, fName
, fDescription
) VALUES (new.fileID
, new.fName
, new.fDescription
);
o con el acento grave:
Código MySQL:
Ver originalDELIMITER ;;
INSERT INTO filedescriptions
(fileID
, fName
, fDescription
) VALUES (new.fileID
, new.fName
, new.fDescription
);
Este código se ejecuta perfectamente en un servidor 5.5:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.09 sec)
Query OK, 0 rows affected (0.07 sec)
mysql> DELIMITER ;;
-> INSERT INTO filedescriptions
(fileID
, fName
, fDescription
) -> VALUES (new.fileID
, new.fName
, new.fDescription
); Query OK, 0 rows affected (0.07 sec)
mysql> DELIMITER ;;
-> IF (old.fileID
!= new.fileID
) OR (old.fDescription
!= new.fDescription
)
-> SET fileID
=new.fileID
, -> fDescription=new.fDescription,
-> fileID=new.fileID
-> WHERE fileID
=old.fileID
; Query OK, 0 rows affected (0.07 sec)
Query OK, 0 rows affected (0.07 sec)
Haz las correcciones pertinentes y pruébalo en el servidor 5.0, y si, deberías considerar hacer la migración de tu BD, pero insisto que ante todo debes poner atención en lo que haces.
Saludos
Leo.