2011-10-06 12 views
5

Ho una tabella con l'archivio archivio e vorrei cancellarlo. Né delete, né truncate funzioneranno a causa della definizione del motore. Ma esiste un modo diverso dal far cadere l'intero tavolo e ricrearlo?mysql truncate archive table

+0

Immagino che tu possa farlo, rilasciare la tabella e ricrearla, ma perché non dovrebbe funzionare il comando 'DELETE FROM table'? Che motore stai usando? – Ben

risposta

9

Vedi Bug #15558 truncate doesn't clear table on archive storage engine tables

In sostanza, i progettisti volevano farlo funzionare in questo modo. La correzione a tale errore era di restituire un errore quando si tenta di utilizzare troncare su una tabella memorizzata con il motore di archiviazione ARCHIVE.

L'unica soluzione è DROP e il re-CREATE del tavolo.

+0

Speravo che ci fosse una sorta di soluzione per questo problema ... Grazie. – Vilius

17

Un'altra soluzione sarebbe quella di trasformarlo in un tavolo BLACKHOLE, quindi modificarlo.

+1

Beh, se questo non è il modo più divertente per troncare un tavolo ... –

+1

Dopo aver provato questo ho scoperto che è efficace. Il file .ARZ viene ripristinato senza la necessità di ricreare la definizione della tabella. – nullability

+0

Questa è la risposta migliore. – ilikesleeping