請教一個mysql問題
在本機windows內的mysql 表格裡面的「欄位」有異動、還有新增 新欄位了
而我也想更新 在ubuntu裡的mysql 的表格內欄位
以往我都採用 在本機windows 用phpmyadmin 將mysql 的db 整個「匯出」
然後我再「匯入」到ubuntu內的mysql
但這樣做的方式,會發生 ubuntu內的mysql 會「吃下」整個本機mysql的資料庫,而導致原本自己的資料都不見
有沒有什麼方法,可以將本機mysql裡的「table」都匯出,而不匯出本機mysql內的資料呢?
等於 我在ubuntu內的mysql 可以只「匯入」所有新的「table」就可以 而原本的資料都還可以存在
謝謝您
可以考慮使用HeidiSQL. (推坑
如果還要包含欄位異動的話,
學學Laravel的migration吧! (繼續推坑
匯出單純節構的資料表倒是不難做到。
倒是匯入會比較麻煩就是了。
畢竟同名的情況下。一定會清掉你的資料。
一般會用兩種做法。在匯出表時做前綴處理。
先匯入有前綴名的表。後再做內部的資料轉移。
不過另外一種安全的方式是做資料安全欄位設定處理就好。
也就是你只要找出有變的欄位去做更新就行了。
花錢消災,
我所知最好的工具是 navicat
它有一個【結構同步】功能,可以100%安全無虞地達到您想要的結果。
因為我常用!
更改 table 欄位這種事,如果沒有事前設計配套程式自動化,最好是「手動」慢慢改。
為了幾個欄位的變化,要整個資料庫 delete/define,實在有點小題大作也有風險
有沒有什麼方法,可以將本機mysql裡的「table」都匯出,而不匯出本機mysql內的資料呢?
有
在phpmyAdmin中
1.選擇原始
「資料庫」(不要點任何一個資料表)後
2.選「匯出」
3.匯出方式選「自訂」
4.格式選「SQL」
5.把「資料」部份的勾勾拿掉
6.產生的 SQL 檔案即是所要的結果
即可,如下圖
等於 我在ubuntu內的mysql 可以只「匯入」所有新的「table」就可以 而原本的資料都還可以存在
不可以(原因見後舉例)
正確的做法是
1.選擇目的
「資料庫」(不要點任何一個資料表)後
2.選「匯出」
3.匯出方式選「自訂」
4.格式選「SQL」
5.把「結構」部份的勾勾拿掉
6.產生的 SQL 檔案即是「原來的所有資料」
最關鍵的部份來了
1.選擇目的
「資料庫」(不要點任何一個資料表)後
2.選「匯入」
3.格式選「SQL」
4.匯入「由原始
資料庫匯出的 sql 檔案」,建立所有資料表
5.匯入「由目的
資料庫匯出的 sql 檔案」,匯入「原來的所有資料」
6.第5步驟會發生一些因為資料表結構不同的錯誤,要靠你自己手動修改後再重新匯入
7.匯入成功則大功告成
看到這裡
你應該會覺得「還是手動改一改就好了,比較簡單」
選我正解
不可以的原因舉例如下:
有一個5x5的書櫃放了一些書
現在修改書櫃的格局
例如:改成6x5(或4x4)、其中有些格子要細分成2,3格
不太可能「書本還在書櫃裡就施工」
因此,施工的順序就是
1.把書全部搬出來
2.改格局
3.把書全部塞回去(塞回去新的格局)