2013-08-16 41 views
82

我使用wampserver 2.2。當我想刪除phpMyAdmin中一個表的所有記錄(全選)時,它只刪除一條記錄而不是全部記錄。爲什麼它不刪除所有記錄?在phpMyAdmin中刪除MYSQL表中的所有記錄

+3

取決於你的查詢,你執行過這樣的嗎? '刪除表名' –

+0

突出顯示錶名並按下'SHIFT-DEL' – DevlshOne

回答

94

轉到您的db - >結構,並在需要的表中清空。 在這裏看到:

this screenshot

22

使用此查詢:

DELETE FROM tableName; 

注意:要刪除某些特定的記錄,你可以給在那裏的條件查詢中還條款。

或者您可以使用此查詢也:

truncate tableName; 

還記得,你不應該與其他表的任何關係。如果表中有任何外鍵約束,那麼這些記錄將不會被刪除,並會出現錯誤。

114

您有2個選項deletetruncate

1)delete from mytable: 這將刪除表的所有內容,而不是正在重置的自動增加的ID,這個過程是非常緩慢的。如果您想刪除特定的記錄,請在末尾附加一個where子句。

2)truncate myTable:這將重置表格,即所有自動增量字段將被重置。它是一個DDL,速度非常快。您不能通過truncate

101

刪除任何特定記錄轉到SQL選項卡運行下面的查詢之一:

delete from tableName; 

Delete:將從您的表中刪除所有行。下一個插入將採取下一個自動增量ID。

truncate tableName; 

Truncate:還將從表中刪除行,但將新行開始1

有例子的詳細博客:http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/

4

一個有趣的事實。

我確定TRUNCATE總是會執行得更好,但在我的情況下,對於大約有30個帶外鍵的表的db,只填充了幾行,大約需要12秒來截斷所有表,而不是幾百毫秒來刪除行。設置自動增量總共增加了大約一秒,但它仍然好很多。

所以我會建議嘗試兩個,看看哪個工作更快爲您的情況。

12

您可以使用此命令刪除所有行。但請記住一件事,一旦您使用truncate命令,您將無法回滾它。

truncate tableName; 
8

「截斷表名」將與定義的鍵約束的表失敗。它也不會重新索引AUTO_INCREMENT表的值。取而代之的是,刪除所有表條目,並使用此SQL語法重置索引回到1:

DELETE FROM tableName; 
ALTER TABLE tableName AUTO_INCREMENT = 1 
1

編寫查詢: 截斷「Your_table_name」;