2015-10-07 189 views
0

我想通過刪除所有表來清空phpmyadmin中的mysql數據庫,但是這會生成外鍵錯誤。如何在phpmyadmin中清空mysql數據庫

解決方法之一是以正確的順序刪除表以防止外鍵錯誤,但有沒有辦法在phpmyadmin中自動執行此操作?例如清空數據庫的功能?

+0

如何刪除所有表? – MJoraid

+0

我所做的只是擺脫整個數據庫並創建一個具有相同名稱的新數據庫。它需要更少的時間和更少的鼠標點擊。 – MJoraid

回答

-1

你是什麼意思數據庫這裏cleanup-

  1. 要刪除的數據庫中的所有表,並希望DB空白。
  2. 或者您想清除所有數據,但需要在數據庫中保留所有表格。

在第一種情況下,更好的選擇是放下數據庫並重新創建它。

或者,如果由於任何特定的原因你不想刪除數據庫(因爲這樣你將失去所有的觸發器/視圖等),然後首先得到表由show tables命令,並準備「drop table table_name ;」腳本在Excel中或通過下面的命令,並通過phpmyadmin執行。

SELECT CONCAT("drop table ",table_schema,".",table_name,";") FROM information_schema.TABLES WHERE table_type='BASE TABLE' AND table_schema='my_db'; 

在第二種情況,如果你想清除數據只有這樣,你可以通過以下命令準備截斷腳本,然後通過phpmyadmin-

SELECT CONCAT執行它(「截斷表」,TABLE_SCHEMA,「」 ,table_name,「;」)FROM information_schema.TABLES WHERE table_type ='BASE TABLE'AND table_schema ='my_db';

注意:在執行drop或truncate命令前執行,執行後執行set foreign_key_checks=1;以避免與外鍵相關的問題。

您可以在服務器控制檯上執行以下命令。

mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "drop table $table"; done 

OR

mysql -uroot -p<pass> -Nse 'show tables' database1 | while read table; do mysql -uroot -p<pass> database1 -e "truncate table $table"; done 
+0

刪除表格與刪除數據不同。 – Shadow

+0

@Shadow:他想截斷表而不刪除數據庫....我不明白你是什麼意思刪除???? –

+0

phpMyAdmin中沒有「右鍵單擊database1」,因爲它在瀏覽器中運行。 – MJoraid