MySQLi - Tabelle temporanee

Le tabelle temporanee potrebbero essere molto utili in alcuni casi per conservare i dati temporanei. La cosa più importante che dovrebbe essere nota per le tabelle temporanee è che verranno eliminate al termine della sessione client corrente.

Come affermato in precedenza, le tabelle temporanee dureranno solo finché la sessione è attiva. Se esegui il codice in uno script PHP, la tabella temporanea verrà distrutta automaticamente al termine dell'esecuzione dello script. Se sei connesso al server di database MySQL tramite il programma client MySQLi, la tabella temporanea esisterà fino a quando non chiuderai il client o distruggerai manualmente la tabella.

Esempio

Ecco un esempio che mostra l'utilizzo di una tabella temporanea. Lo stesso codice può essere utilizzato negli script PHP utilizzandomysqli_query() funzione.

mysql> CREATE TEMPORARY TABLE SalesSummary (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
   -> );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)

Quando si immette un comando SHOW TABLES, la tabella temporanea non verrà elencata nell'elenco. Ora, se ti disconnetti dalla sessione MySQLi e poi emetti un comando SELECT, non troverai dati disponibili nel database. Anche la tua tabella temporanea non esisterebbe.

Eliminazione di tabelle temporanee

Per impostazione predefinita, tutte le tabelle temporanee vengono eliminate da MySQLi quando la connessione al database viene terminata. Tuttavia, se vuoi eliminarli nel mezzo, lo fai immettendo il comando DROP TABLE.

Di seguito è riportato l'esempio sull'eliminazione di una tabella temporanea:

mysql> DROP TABLE SalesSummary;
mysql>  SELECT * FROM SalesSummary;
ERROR 1146: Table 'TUTORIALS.SalesSummary' doesn't exist