2015-10-17 59 views
0

大家下午好, 我有很多舊的備份文件(用mysqldump創建),完全備份我的數據庫(表結構,數據和過程)。 現在我必須在表中將列CHAR(5)更改爲VARCHAR(7),但我希望我的舊備份與新結構兼容。我可以只從這些舊備份還原數據嗎? 未來,我已經改變了我的PHP腳本,只備份mysqldump中的--no-crete-info選項。Mysql只恢復數據

非常感謝 盧卡

回答

0

你爲什麼不上傳MySQL的轉儲到phpMyAdmin然後更改爲VARCHAR(7)使用編輯結構選項卡(5)從CHAR的列。如果你不太確定如何編輯文件轉儲,這似乎是你最簡單的選擇。

+0

我沒有PhpMyAdmin。我用腳本創建我的數據庫。我已經修改了.sql腳本,但是如果我還原舊備份,實際表列VARCHAR(7)將被CHAR(5)覆蓋, –

0

處理這個數據定義更改的最好方法就是做到這一點。

  1. 在更改之前進行備份。
  2. 讓您的應用程序脫機,因此沒有人試圖訪問數據庫。
  3. 發出命令ALTER TABLE mytable MODIFY mycolumn VARCHAR(5);

然後你就會被啓動和運行。您可以再次啓動應用程序,並且可以進行另一次備份。最後你可能想發出這個命令。

UPDATE mytable SET mycolumn = TRIM(mycolumn) 

用於處理舊列值中潛在的尾隨空格。