MariaDB - Temporäre Tabellen
Einige Vorgänge können aufgrund der Geschwindigkeit oder der verfügbaren Daten von temporären Tabellen profitieren. Die Lebensdauer einer temporären Tabelle endet mit dem Beenden einer Sitzung, unabhängig davon, ob Sie sie an der Eingabeaufforderung, mit einem PHP-Skript oder über ein Client-Programm verwenden. Es erscheint auch nicht in typischer Weise im System. Der Befehl SHOW TABLES zeigt keine Liste mit temporären Tabellen an.
Erstellen Sie eine temporäre Tabelle
Das Schlüsselwort TEMPORARY in einer Anweisung CREATE TABLE erzeugt eine temporäre Tabelle. Überprüfen Sie ein Beispiel unten -
mysql>CREATE TEMPORARY TABLE order (
item_name VARCHAR(50) NOT NULL
, price DECIMAL(7,2) NOT NULL DEFAULT 0.00
, quantity INT UNSIGNED NOT NULL DEFAULT 0
);
Beim Erstellen einer temporären Tabelle können Sie vorhandene Tabellen mit der LIKE-Klausel klonen, dh alle ihre allgemeinen Merkmale. Die Anweisung CREATE TABLE, mit der die temporäre Tabelle erzeugt wird, schreibt aufgrund des Schlüsselworts TEMPORARY keine Transaktionen fest.
Temporäre Tabellen unterscheiden sich zwar von nicht temporären Tabellen und werden am Ende einer Sitzung gelöscht. Sie können jedoch bestimmte Konflikte aufweisen.
Sie stehen manchmal in Konflikt mit temporären Ghost-Tabellen aus abgelaufenen Sitzungen.
Sie stehen manchmal in Konflikt mit Schattennamen nicht temporärer Tabellen.
Note - Temporäre Tabellen dürfen denselben Namen wie eine vorhandene nicht temporäre Tabelle haben, da MariaDB diese als Differenzreferenz betrachtet.
Verwaltung
Für MariaDB müssen Benutzern Berechtigungen zum Erstellen temporärer Tabellen gewährt werden. Verwenden Sie eine GRANT-Anweisung, um Nicht-Administratoren dieses Privileg zu erteilen.
GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';
Löschen Sie eine temporäre Tabelle
Obwohl temporäre Tabellen am Ende von Sitzungen im Wesentlichen entfernt werden, haben Sie die Möglichkeit, sie zu löschen. Das Löschen einer temporären Tabelle erfordert die Verwendung des Schlüsselworts TEMPORARY. Best Practices empfehlen, temporäre Tabellen vor nicht temporären Tabellen zu löschen.
mysql> DROP TABLE order;