MariaDB - Tavoli temporanei
Alcune operazioni possono trarre vantaggio dalle tabelle temporanee a causa della velocità o dei dati disponibili. La vita di una tabella temporanea termina alla fine di una sessione, sia che tu le utilizzi dal prompt dei comandi, con uno script PHP o tramite un programma client. Inoltre, non compare nel sistema in modo tipico. Il comando MOSTRA TABELLE non rivelerà un elenco contenente tabelle temporanee.
Crea una tabella temporanea
La parola chiave TEMPORARY all'interno di un'istruzione CREATE TABLE genera una tabella temporanea. Rivedi un esempio fornito di seguito:
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
);
Nella creazione di una tabella temporanea, è possibile clonare le tabelle esistenti, ovvero tutte le loro caratteristiche generali, con la clausola LIKE. L'istruzione CREATE TABLE utilizzata per generare la tabella temporanea non eseguirà il commit delle transazioni come risultato della parola chiave TEMPORARY.
Sebbene le tabelle temporanee si distinguano da quelle non temporanee e cadano alla fine di una sessione, potrebbero avere alcuni conflitti:
A volte entrano in conflitto con tabelle temporanee fantasma da sessioni scadute.
A volte entrano in conflitto con i nomi shadow di tabelle non temporanee.
Note - Le tabelle temporanee possono avere lo stesso nome di una tabella non temporanea esistente perché MariaDB la vede come un riferimento di differenza.
Amministrazione
MariaDB richiede la concessione di privilegi agli utenti per la creazione di tabelle temporanee. Utilizzare un'istruzione GRANT per concedere questo privilegio agli utenti non amministratori.
GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';
Rilascia una tabella temporanea
Sebbene le tabelle temporanee vengano essenzialmente rimosse alla fine delle sessioni, hai la possibilità di eliminarle. L'eliminazione di una tabella temporanea richiede l'uso della parola chiave TEMPORARY e le migliori pratiche suggeriscono di eliminare le tabelle temporanee prima di qualsiasi tabella non temporanea.
mysql> DROP TABLE order;