簡體   English   中英

如何在phpmyadmin中清空mysql數據庫

[英]How to empty mysql database in phpmyadmin

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

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

我的回答有點晚了,但很容易和工作:

  • 轉到數據庫的表/結構視圖。
  • 向下滾動到最后,選擇“全部檢查”並選擇“已選擇”“丟棄”。
  • 禁用復選框“啟用外鍵檢查”。
  • 單擊“是”以執行您的查詢。

您現在有一個空數據庫(該數據庫仍然存在,並且數據庫視圖顯示“在數據庫中未找到表”。

您在這里所說的數據庫清理是什么意思-

  1. 您想從 DB 中刪除所有表並希望 DB 為空。
  2. 或者您想清除所有數據但需要數據庫中的所有表都完好無損。

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

或者,如果由於任何特定原因您不想刪除數據庫(因為這樣您將丟失所有觸發器/視圖等),則首先通過 show tables 命令獲取要刪除的表並准備“刪除表 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("truncate table ",table_schema,".",table_name,";") FROM information_schema.TABLES WHERE table_type='BASE TABLE' AND table_schema='my_db';

注意:執行set foreign_key_checks=0; 在執行 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

或者

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM