SQL - Temporäre Tabellen
Was sind temporäre Tabellen?
Es gibt RDBMS, die temporäre Tabellen unterstützen. Temporäre Tabellen sind eine großartige Funktion, mit der Siestore and process intermediate results Verwenden Sie dieselben Auswahl-, Aktualisierungs- und Verknüpfungsfunktionen, die Sie für typische SQL Server-Tabellen verwenden können.
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.
Temporäre Tabellen sind ab MySQL Version 3.23 verfügbar. Wenn Sie eine ältere Version von MySQL als 3.23 verwenden, können Sie keine temporären Tabellen verwenden, aber Sie können verwendenheap tables.
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 MySQL-Client-Programm 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.
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 jetzt von der MySQL-Sitzung abmelden und dann einen SELECT-Befehl ausgeben, sind in der Datenbank keine Daten verfügbar. Auch Ihre temporäre Tabelle ist nicht vorhanden.
Temporäre Tabellen löschen
Standardmäßig werden alle temporären Tabellen von MySQL gelöscht, wenn Ihre Datenbankverbindung beendet wird. Wenn Sie sie jedoch zwischendurch löschen möchten, können Sie dies tun, indem Sie a ausgebenDROP TABLE Befehl.
Es folgt ein Beispiel zum Löschen einer temporären Tabelle.
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 'TUTORIALS.SALESSUMMARY' doesn't exist