DROP TABLE
Sintassi
DROP [TEMPORARY] TABLE [IF EXISTS] [/*COMMENTO DA SALVARE*/] nome_tabella [, nome_tabella] ... [WAIT n|NOWAIT] [RESTRICT | CASCADE]
Spiegazione
DROP TABLE
rimuove una o più tabella. Occorre disporre del privilegio DROP
su ognuna di esse. Verranno eliminati tutte le definizioni delle tabelle e tutti i dati che contengono, pertanto si presti attenzione! Se una o più tabelle nominate nella lista non esistono, MariaDB restituisce un errore che indica i nomi delle tabelle inesistenti, ma rimuove quelle esistenti.
Importante: Quando una tabella viene rimossa, i privilegi degli utenti sulla tabella non vengono eliminati. Si veda GRANT.
Si noti che, nel caso di una tabella partizionata, DROP TABLE
rimuove permanentemente la definizione della tabella e di tutte le sue partizioni, oltre a tutti i dati. Elimina inoltre i file delle definizioni delle partizioni (.par).
La clausola IF EXISTS
impedisce che venga restituito un errore per le tabelle inesistenti; invece, viene generata una NOTE
per ognuna di esse. Si veda SHOW WARNINGS.
RESTRICT
e CASCADE
sono ammessi per facilitare il porting da altri DBMS, ma non fanno niente.
A partire da MariaDB 5.5.27 il commento prima dei nomi delle tabelle (cioè /*COMMENTO DA SALVARE*/
) viene scritto nel log binario. Questa caratteristica può essere utile per i tool di replica per inviarsi messaggi interni.
Nota: DROP TABLE
esegue automaticamente il commit delle transazioni attive, a meno che non si utilizzi la parola chiave TEMPORARY
.
DROP TABLE nella replica
DROP TABLE
ha le seguenti caratteristiche nella replica:
DROP TABLE IF EXISTS
è sempre loggato.DROP TABLE
senzaIF_EXISTS
, se la tabella non esiste, non viene scritto nel log binario.- L'eliminazione delle tabelle temporanee viene loggata con la parola chiave
TEMPORARY
. Queste eliminazioni vengono loggate solo con i metodi mixed o statement. - Una singola istruzione
DROP TABLE
può essere loggata con fino a treDROP
differenti:DROP TEMPORARY TABLE lista_tabelle_temporanee_non_transazionali
DROP TEMPORARY TABLE lista_tabelle_temporanee_transazionali
DROP TABLE lista_tabelle_normali
A partire da MariaDB 10.0.8, una DROP TABLE
sul master viene trattata dallo slave come DROP TABLE IF EXISTS
. E' possibile modificare questo comportamento impostando slave-ddl-exec-mode a STRICT
.
Esempi
DROP TABLE Employees, Customers;
Vedi anche
- Variabile slave-ddl-exec-mode.