Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/05/2012, 12:02
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años
Puntos: 447
Respuesta: Insert Multiple en Stored Procedure

Hola djaevi:

No estoy seguro de que puedas utilizar la función CONCAT para preparar una sentencia. Inténtalo así:

Código:
DROP PROCEDURE IF EXISTS llenarDatos;
DELIMITER $$

CREATE
    PROCEDURE llenarDatos(llenar VARCHAR(100))
    BEGIN
	SET @temp = CONCAT('INSERT INTO tabla VALUES ', llenar);
	PREPARE consulta FROM @temp;
	EXECUTE consulta;
	DEALLOCATE PREPARE consulta;
    END$$

DELIMITER ;
Aquí estaría funcionando el SP:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+-------------+
  3. | id   | descripcion |
  4. +------+-------------+
  5. |    1 | uno         |
  6. |    2 | dos         |
  7. |    3 | tres        |
  8. +------+-------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> CALL llenarDatos("(4, 'cuatro'), (5, 'cinco')");
  12. Query OK, 0 rows affected (0.04 sec)
  13.  
  14. mysql> SELECT * FROM tabla;
  15. +------+-------------+
  16. | id   | descripcion |
  17. +------+-------------+
  18. |    1 | uno         |
  19. |    2 | dos         |
  20. |    3 | tres        |
  21. |    4 | cuatro      |
  22. |    5 | cinco       |
  23. +------+-------------+
  24. 5 rows in set (0.00 sec)

Recuerda siempre eliminar las sentencias preparadas con DEALLOCATE PREPARE

Haz la prueba y nos comentas.

Saludos
Leo.