Dernier tutorie...login
Dernier tutoriel manuel MySQL
auteur:php.cn  temps de mise à jour:2022-04-15 14:04:12

Table temporaire MySQL


Table temporaire MySQL

La table temporaire MySQL est très utile lorsque nous devons enregistrer des données temporaires. Les tables temporaires ne sont visibles que dans la connexion actuelle. Lorsque la connexion est fermée, Mysql supprimera automatiquement la table et libérera tout l'espace.

Des tables temporaires ont été ajoutées dans la version 3.23 de MySQL. Si votre version de MySQL est inférieure à 3.23, vous ne pouvez pas utiliser les tables temporaires de MySQL. Cependant, de nos jours, il est généralement rare d’utiliser une version aussi basse du service de base de données MySQL.

La table temporaire MySQL n'est visible que dans la connexion actuelle. Si vous utilisez un script PHP pour créer une table temporaire MySQL, la table temporaire sera automatiquement détruite à chaque exécution du script PHP.

Si vous utilisez un autre programme client MySQL pour vous connecter au serveur de base de données MySQL afin de créer une table temporaire, la table temporaire ne sera détruite qu'à la fermeture du programme client. Bien sûr, vous pouvez également la détruire manuellement.

Exemple

Ce qui suit montre un exemple simple d'utilisation d'une table temporaire MySQL. Le code SQL suivant peut être appliqué à la fonction mysql_query() du script PHP.

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 utilisez la commande SHOW TABLES pour afficher une liste de tableaux de données, vous ne pourrez pas voir le tableau SalesSummary.

Si vous quittez la session MySQL en cours et utilisez ensuite la commande SELECT pour lire les données de la table temporaire créée à l'origine, vous constaterez que la table n'existe pas dans la base de données car in La table temporaire a été détruite lorsque vous quittez.

Supprimer la table temporaire MySQL

Par défaut, la table temporaire sera automatiquement détruite lorsque vous vous déconnecterez de la base de données. Bien sûr, vous pouvez également utiliser la commande DROP TABLE dans la session MySQL en cours pour supprimer manuellement la table temporaire.

Ce qui suit est un exemple de suppression manuelle d'une table temporaire :

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)
mysql> DROP TABLE SalesSummary;
mysql>  SELECT * FROM SalesSummary;
ERROR 1146: Table 'php.SalesSummary' doesn't exist

Recommandations du didacticiel vidéo associé : Table MySQL

Site Web PHP chinois