2011-11-11 216 views
49

我想從表中刪除所有記錄。我的查詢是:從mysql表中刪除所有記錄

delete from tableName. 

但它報告以下錯誤:

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."

我該如何解決這個問題?

+4

我可能會丟失一些東西,但是錯誤信息已經告訴你該怎麼做:*在首選項 - > SQL編輯器 - >查詢編輯器中切換選項並重新連接。* –

+2

截斷表而不是 – chemila

+0

我正在使用mySQL Workbench和它thorws這個錯誤。 – Sami

回答

62

truncate tableName

這是你在找什麼。

截斷will delete表中的所有記錄清空它。

+0

非常有幫助。謝謝。 – zeboidlund

+1

該命令刪除表。它不會刪除表中的所有記錄。 – mousecoder

+0

@mousecoder這是不正確的,它會留下一個空表,其中drop會刪除表。添加了該手冊的鏈接。 – Thirler

57

這是因爲您試圖更新沒有使用KEY列的WHERE表。

快速修復是添加SET SQL_SAFE_UPDATES = 0;您的查詢之前:

SET SQL_SAFE_UPDATES=0; 

或者

關閉安全更新模式。 編輯 - >首選項 - > SQL編輯器 - > SQL編輯器 刪除禁止沒有WHERE子句的UPDATE和DELETE語句(安全更新)。

順便說一句,您可以使用truncate table刪除所有記錄。

+0

對於記錄,當您使用TRUNCATE TABLE時,最新版本(也可能是以前的版本)也會失敗。此外,錯誤仍然是相同的,但是該選項在Edit-> Preferencie - > SQL查詢中(而不是在SQL編輯器中)。 – magallanes