Un po' come la RAM Disk (vedi How to Use Windows 98 - Volume III) che si cancella quando si spegne o resetta il PC, allo stesso modo questo tipo di tabella si estingue o nel momento in cui chiudiamo la connessione via Web, oppure, se usiamo la consolle, la tabella rimane in funzione finché non usciamo dalla sessione in uso.
Maria DB (o MySQL, ma in generale, sintassi a parte, è usata in tutti database relazionali di tipo SQL) ci può consentire di usare una tabella di questo tipo
Lo scopo di questo tipo di tabella è quello di poter avere dei dati limitati ed operare su di essi senza occupare spazio sul disco
Ad esempio da una tabella enorme prendere solo un gruppo di dati specifico e lavorare su quelli senza cercare all'interno di una tabella più estesa (un classico esempio se ho un database giocatori mondiale (qualche milione di righe) e voglio solo quelli del S.S.C. Napoli per leggerne le caratteristiche, nulla mi vieta di costruire una tabella temporanea e caricare solo i giocatori di quella squadra per operare più velocemente.
Come si costruisce una tabella temporanea in SQL?
CREATE TEMPORARY TABLE calciatori_limitati
(
nome VARCHAR(200) NULL,
societa varchar(200) NULL,
caratteristiche text, NULL
);
A questo punto nel sistema è stata creata una tabella che accoglierà il nome, società e delle caratteristiche, che per comodità abbiamo messo in formato testo tipo articolo, ma è estendibile come e quanto ci pare.
A questo punto la tabella è creata e funziona con tutti i metodi di una tabella classica.
La fregatura (quindi da usare sempre cum grano salis) è che se la usiamo per il web, quindi abbiamo una funzione che legge i dati che estrae i dati e li porta in PHP, ad esempio, costruzione della tabella, ed inserimento dati deve essere scritto e fatto in singola sessione, sennò non funziona, tipo:
$query1="CREATE TEMPORARY TABLE calciatori_limitati
(
nome VARCHAR(200) NULL,
societa varchar(200) NULL,
caratteristiche text, NULL
);
INSERT INTO calciatori_limitati (nome,societa,caratteristiche)
SELECT nome,societa,caratteristiche FROM calciatori WHERE societa = 'S.S.C. Napoli';
SELECT * FROM calciatori_limitati WHERE 1;";
In questo modo la sessione si chiude alla fine delle apici e quindi i dati restituiti sono la select immagazzinata in $query1 che è possibile elaborare dopo con un ciclo while per l'estrazione dei dati
Se si usa PHPMyAdmin, basta che il testo contenuto tra le apici venga inserito in SQL, che il risultato sarà lo stesso
Se usiamo invece la consolle di MySQL, la tabella rimane in memoria finche o non viene cancellata oppure chiusa la sessione il che consente di lavorare con più calma
Commenti