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 senza IF_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 tre DROP 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

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.