2017-10-08 18 views
1

我可以查詢通過創建特定表:phpMyAdmin的出口數據庫創建腳本

SHOW CREATE TABLE `table_name` 

如果我這樣做了所有的表,我可以通過運行收集SQL重建整個數據庫查詢。有沒有更簡單的方法來獲得表創建腳本,即sql導出文件,它只是通過使用CREATE語句創建數據庫?

+0

意外的聲明開始: (在位置0處的「mysqldump」附近) – user2340939

+0

'mysqldump'是您運行的程序,而不是SQL語句。 –

回答

0

我會用mysqldump解決這個問題。這是一個隨MySQL提供的命令行工具。以下是文檔:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

您可以在命令提示符處運行它,而不是在phpMyAdmin中運行它。您必須能夠訪問與運行MySQL服務器的主機相同的shell環境,或者至少可以通過網絡訪問該主機。

例如:

mysqldump --no-data mydatabase mytable 

的輸出效果:(。還有的說我忽略多個輸出)

-- 
-- Table structure for table `mytable` 
-- 

DROP TABLE IF EXISTS `mytable`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `mytable` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `c1` int(11) DEFAULT NULL, 
    `c2` int(11) DEFAULT NULL, 
    `c3` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; 

您可以一次傾倒許多表的結構這種方式,以及視圖,觸發器,程序等等。

如果您不使用--no-data,它還包括您轉儲的每個表中的數據。這使其成爲數據備份的有效工具。默認情況下,它會以很多INSERT語句的形式轉儲數據。因此,就像CREATE TABLE語句可以重新創建數據庫的結構(如果您針對另一個MySQL實例運行它們),INSERT語句可以重新創建數據。