MySQLi - Temporäre Tabellen

Die temporären Tabellen können in einigen Fällen sehr nützlich sein, um temporäre Daten zu speichern. Das Wichtigste, was für temporäre Tabellen bekannt sein sollte, ist, dass sie gelöscht werden, wenn die aktuelle Clientsitzung beendet wird.

Wie bereits erwähnt, halten temporäre Tabellen nur so lange, wie die Sitzung aktiv ist. Wenn Sie den Code in einem PHP-Skript ausführen, wird die temporäre Tabelle automatisch zerstört, wenn die Ausführung des Skripts abgeschlossen ist. Wenn Sie über das MySQLi-Clientprogramm mit dem MySQL-Datenbankserver verbunden sind, bleibt die temporäre Tabelle bestehen, bis Sie den Client schließen oder die Tabelle manuell zerstören.

Beispiel

Hier ist ein Beispiel, das Ihnen die Verwendung einer temporären Tabelle zeigt. Der gleiche Code kann in PHP-Skripten mit verwendet werdenmysqli_query() Funktion.

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)

Wenn Sie einen Befehl SHOW TABLES ausgeben, wird Ihre temporäre Tabelle nicht in der Liste aufgeführt. Wenn Sie sich von der MySQLi-Sitzung abmelden und dann einen SELECT-Befehl ausgeben, sind in der Datenbank keine Daten verfügbar. Auch Ihre temporäre Tabelle würde nicht existieren.

Temporäre Tabellen löschen

Standardmäßig werden alle temporären Tabellen von MySQLi gelöscht, wenn Ihre Datenbankverbindung beendet wird. Wenn Sie sie dennoch dazwischen löschen möchten, geben Sie dazu den Befehl DROP TABLE ein.

Das folgende Beispiel zeigt das Löschen einer temporären Tabelle:

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