Merge
Da Wikipedia, l'enciclopedia libera.
Merge è un tipo di tabella di MySQL. Una tabella di tipo Merge è una collezione di tabelle MyISAM aventi le stesse colonne e gli stessi indici. Le colonne e gli indici devono avere gli stessi nomi, lo stesso ordine e le stesse caratteristiche in tutte le tabelle MyISAM che fanno parte della stessa Merge. Esse però non devono necessariamente trovarsi nello stesso database e possono avere formati e opzioni (PACK_KEYS, MAX_ROWS...) differenti.
Questo tipo di tabella è stato creato nelle più vecchie versioni di MySQL principalmente per supplire il mancato supporto alle viste e al partizionamento, ma ancora oggi può risultare utile.
Indice |
[modifica] Struttura dei file
Ogni tabella di tipo Merge è registrata in due file differenti. Ognuno ha un nome costituito da due parti: il nome di base è uguale al nome della tabella, mentre l'estensione indica la funzione del file.
- Il file .frm contiene la definizione della struttura della tabella, come per le MyISAM.
- Il file .MRG contiene i nomi delle tabelle MyISAM che compongono la Merge.
[modifica] Come creare una tabella di tipo Merge
La sintassi per creare una tabella Mergeè la seguente:
CREATE TABLE t1 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b CHAR(20)); CREATE TABLE t2 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b CHAR(20)); CREATE TABLE totale ( a INT NOT NULL AUTO_INCREMENT, b CHAR(20), INDEX(a)) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
Come si può notare, la tabella totale ha la stessa struttura delle due tabelle sottostanti. Il campo a non è dichiarato come chiave primaria perché il motore Merge non può garantire l'unicità dei dati.
Per modificare la lista delle tabelle sottostanti:
ALTER TABLE tbl_name UNION=(...)