¿Crear una tabla temporal en un procedimiento MySQL?
Para crear una tabla temporal en un procedimiento MySQL, la siguiente es la sintaxis:
CREATE PROCEDURE yourProcedureName()
BEGIN
CREATE TEMPORARY TABLE yourTemporaryTableName SELECT yourValue;
END
Implementemos la sintaxis anterior para crear una tabla temporal e insertar algunos registros en la tabla. La siguiente es la consulta para crear un procedimiento almacenado y una tabla temporal en él:
mysql> DELIMITER //
mysql> CREATE PROCEDURE create_Temporary_Table()
-> BEGIN
-> CREATE TEMPORARY TABLE tmpDemoTable SELECT 500;
-> END//
Query OK, 0 rows affected (0.15 sec)
La siguiente es la consulta para insertar un registro en la tabla:
mysql> CREATE PROCEDURE insert_Record_InTempTable()
-> BEGIN
-> INSERT INTO tmpDemoTable VALUES (300);
-> END//
Query OK, 0 rows affected (0.06 sec)
mysql> DELIMITADOR
Ahora puede llamar al procedimiento almacenado anterior para crear una tabla temporal:
mysql> call create_Temporary_Table();
Query OK, 1 row affected (0.00 sec)
mysql> call insert_Record_InTempTable();
Query OK, 1 row affected (0.00 sec)
Muestre todos los registros de la tabla usando la declaración de selección:
mysql> select *from tmpDemoTable;
Producción
Esto producirá el siguiente resultado:
+-----+
| 500 |
+-----+
| 500 |
| 300 |
+-----+
2 rows in set (0.00 sec)