2011-11-11 19 views
49

Sto tentando di eliminare tutti i record da una tabella. La mia domanda è:elimina tutto il record dalla tabella in mysql

delete from tableName. 

Ma segnala il seguente errore:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor -> Query Editor and reconnect."

Come risolvo questo?

+4

Potrei mancare qualcosa, ma il messaggio di errore già ti dice cosa fare: * attivare l'opzione in Preferenze -> Editor SQL -> Query Editor e riconnettersi. * –

+2

tabella troncata invece – chemila

+0

sto usando mySQL Workbench e conferma questo errore. – Sami

risposta

62

truncate tableName

Questo è quello che stai cercando.

Tronca will delete tutti i record nella tabella, svuotandolo.

+0

Molto utile. Grazie. – zeboidlund

+1

Questo comando rilascia la tabella. Non cancella tutti i record dalla tabella. – mousecoder

+0

@mousecoder Questo non è corretto, lascerà una tabella vuota, dove drop rimuove la tabella. Aggiunto il link al manuale. – Thirler

57

È perché si è tentato di aggiornare una tabella senza un WHERE che utilizza una colonna KEY.

La soluzione rapida consiste nell'aggiungere SET SQL_SAFE_UPDATES = 0; prima della query:

SET SQL_SAFE_UPDATES=0; 

O

chiudere la modalità di aggiornamento di sicurezza. Modifica -> Preferenze -> Editor SQL -> Editor SQL rimuovi Proibire istruzioni UPDATE e DELETE senza una clausola WHERE (aggiornamenti sicuri).

BTW è possibile utilizzare truncate table per eliminare tutti i record.

+0

Per il record, anche la versione più recente (e potrebbe essere la precedente) non riesce quando si utilizza TRUNCATE TABLE. Inoltre, l'errore è sempre lo stesso, tuttavia l'opzione è in Modifica-> Preferenza -> Query SQL (e non in SQL Editor). – magallanes

Problemi correlati