程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql查詢架構信息,Mysql架構信息

Mysql查詢架構信息,Mysql架構信息

編輯:MySQL綜合教程

Mysql查詢架構信息,Mysql架構信息


今天想給整個數據庫做初始化,也就是清空所有表,然後讓索引歸零,使用truncate table 就可以,但好多張表,怎麼批量搞定呢?

有人說重建表吧,dump一下,然後再重建,但我還是想用truncate,畢竟用得熟也好理解。

但是怎麼獲取所有表的表名呢?然後還得手寫N個Truncate ,到網上查了查,還有另一種方法可以批量獲取Table的名稱,並生產出Truncae Table的語句。

具體思路是 找到所有表的表名 -> 用表名自動生成語句的查詢結果 -> 把查詢結果復制出來 -> 運行

具體的語句就是下面這段

SELECT CONCAT('truncate table ',table_name,';') 
FROM information_schema.tables WHERE table_schema = '你的數據庫名' AND table_type != 'view';

查詢結果是這樣的:

然後勾選中全選,右鍵->復制選擇的查詢記錄->粘貼到執行區域->執行,就可以了,復制出來記錄都是帶著引號的,可以用一些編輯工具進行批量刪引號,我用的sublime :-D

執行之前請小心檢查,把字典表什麼的去掉,否則還得重新填,而且執行前請備份當前的庫,以免後悔。

 好了,在回顧一下上面那條語句, 核心是查Mysql的數據庫架構信息表 [information_schema.tables],語句中的

table_type != 'view'

 這句話是過濾掉查詢結果中的視圖,至於其它類型的,仔細看看查詢結果,把不需要的去掉就行了,然後用CONCAT拼語句結構的查詢結果去執行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved