Elimina tutti i record in una tabella di MYSQL in phpMyAdmin


122

Uso wampserver 2.2. Quando voglio eliminare tutti i record di una tabella in phpMyAdmin (seleziona tutto), elimina solo un record, non tutti i record. Perché non elimina tutti i record?


3
dipende dalla tua query, hai eseguito in questo modo? DELETE FROM tableName
John Woo

Evidenzia il nome del tavolo e premiSHIFT-DEL
DevlshOne

Risposte:


130

Vai al tuo db -> struttura e svuota la tabella richiesta. Vedere qui:

questo screenshot


167

Hai 2 opzioni deletee truncate:

  1. delete from mytable

    Questo cancellerà tutto il contenuto della tabella, non resettando l'id autoincrementale, questo processo è molto lento. Se vuoi eliminare record specifici, aggiungi una clausola where alla fine.

  2. truncate myTable

    Ciò ripristinerà la tabella, ovvero tutti i campi incrementali automatici verranno ripristinati. È un DDL ed è molto veloce. Non è possibile eliminare alcun record specifico tramite truncate.



27

Usa questa query:

DELETE FROM tableName;

Nota: per eliminare alcuni record specifici, è possibile fornire anche la condizione nella clausola where nella query.

OPPURE puoi utilizzare questa query anche:

truncate tableName;

Ricorda inoltre che non dovresti avere alcun rapporto con altri tavoli. Se nella tabella sarà presente un vincolo di chiave esterna, quei record non verranno eliminati e restituiranno l'errore.


19

Puoi eliminare tutte le righe con questo comando, ma ricorda una cosa che una volta eseguito il comando truncate non puoi ripristinarlo.

  truncate tableName;

11

"Truncate tableName" avrà esito negativo su una tabella con vincolo di chiave definito. Inoltre, non reindicherà il AUTO_INCREMENTvalore della tabella . Invece, elimina tutte le voci della tabella e reimposta l'indicizzazione su 1 utilizzando questa sintassi sql:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4

Un fatto interessante.

Ero sicuro che TRUNCATE funzionerà sempre meglio, ma nel mio caso, per un db con circa 30 tabelle con chiavi esterne, popolato solo con poche righe, ci sono voluti circa 12 secondi per TRUNCATE tutte le tabelle, invece di poche centinaia di millisecondi per CANCELLARE le righe. L'impostazione dell'incremento automatico aggiunge circa un secondo in totale, ma è comunque molto meglio.

Quindi suggerirei di provarli entrambi, vedere quale funziona più velocemente per il tuo caso.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.