MySQLi - Tables temporaires

Les tables temporaires peuvent être très utiles dans certains cas pour conserver des données temporaires. La chose la plus importante à savoir pour les tables temporaires est qu'elles seront supprimées à la fin de la session cliente en cours.

Comme indiqué précédemment, les tables temporaires ne dureront que tant que la session est active. Si vous exécutez le code dans un script PHP, la table temporaire sera détruite automatiquement lorsque le script aura fini de s'exécuter. Si vous êtes connecté au serveur de base de données MySQL via le programme client MySQLi, la table temporaire existera jusqu'à ce que vous fermiez le client ou détruisiez manuellement la table.

Exemple

Voici un exemple montrant l'utilisation d'une table temporaire. Le même code peut être utilisé dans les scripts PHP en utilisantmysqli_query() fonction.

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)

Lorsque vous émettez une commande SHOW TABLES, votre table temporaire n'est pas répertoriée dans la liste. Maintenant, si vous vous déconnectez de la session MySQLi et que vous émettez une commande SELECT, vous ne trouverez aucune donnée disponible dans la base de données. Même votre table temporaire n'existerait pas non plus.

Suppression de tables temporaires

Par défaut, toutes les tables temporaires sont supprimées par MySQLi lorsque votre connexion à la base de données est interrompue. Cependant, si vous souhaitez les supprimer entre les deux, vous le faites en exécutant la commande DROP TABLE.

Voici l'exemple de suppression d'une table temporaire -

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