Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/03/2013, 07:25
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: Esta bien planteado este procedure? Se podria con triggers?

¿Bien planteado?
No.

El auto_increment, usado de esa forma repetiría valores, porque ese campo contiene el último valor generado en un un INSERT sobre la tabla. Si lo lees sin afectarlo simplemente tomas el mismo valor para eso.

Por otro lado, hacer eso es total y absolutamente innecesario en el contexto que lo usas, ya que para eso existe una función específica (el manual de referencia tiene buenas explicaciones de este tipo de cosas).

Además estás usando palabras reservadas como nombres de variable en el prototipo, por lo que el resultado de esto es incierto, si es que compila.

Lo que necesitarías sería mas o menos:
Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. CREATE PROCEDURE subeArchivoPortal (
  4.     IN vName VARCHAR(60),
  5.     IN vDescription  VARCHAR(50),
  6.     IN vPath VARCHAR(60),
  7.     IN vType VARCHAR(15),
  8.     IN vPremium VARCHAR(5),
  9.     IN vUploader INT,
  10.     IN vAutor varchar(50),
  11.     IN vUrl VARCHAR (5),
  12.     IN vLevel  VARCHAR(10),
  13.     IN vPortal INT
  14.     )
  15.     DECLARE idFile INT DEFAULT 0;
  16.    
  17.     INSERT INTO files (fName, fDescription, fType, fDate, fPath, fUploader, fAutor, fLevel, fUrl, fPremium)
  18.     VALUES(vName, vDescription, vType, CURDATE(), vPath, vUploader, vAutor, vLevel, vUrl, vPremium);
  19.    
  20.     SET idFiles = LAST_INSERT_ID();
  21.    
  22.     INSERT INTO portalfiles (pfPortalID, pfFileID )
  23.     VALUES (vPortal, idFile);
  24. END$$
  25. DELIMITER ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)