是否有可能通過簡單地提供新的模式和具有數據庫計算出如何遷移到改變MySQL表的架構改變MySQL表?例如,假設我有一個包含兩列的表:id,name。我想通過添加一個新的列來修改這個表格:title。我知道我可以發出命令ALTER TABLE tbl ADD COLUMN標題。有沒有一種方法可以提供完整的模式,並讓mysql知道需要添加標題列?通過提供新的模式
我希望是有道理的什麼,我問。
是否有可能通過簡單地提供新的模式和具有數據庫計算出如何遷移到改變MySQL表的架構改變MySQL表?例如,假設我有一個包含兩列的表:id,name。我想通過添加一個新的列來修改這個表格:title。我知道我可以發出命令ALTER TABLE tbl ADD COLUMN標題。有沒有一種方法可以提供完整的模式,並讓mysql知道需要添加標題列?通過提供新的模式
我希望是有道理的什麼,我問。
的MySQL本身不能做到這一點,但我發現一個blog,說MySQL工作臺可以做到這一點。
沒有 - 它不能這樣做只是讓你的數據庫的新模式。它將不得不去猜測如何處理數據。 (同樣會發生什麼觸發器,存儲過程...)
你有兩個選擇
需要多少「第二次猜測」?只需匹配舊模式和新模式中的列,並使用適當的「添加列」,「修改列」和「刪除列」參數執行「alter table」。它不能自動計算出來的唯一情況是如果你想重命名一列。 – Barmar
...考慮存儲過程,觸發器,數據的使用以及一個表的更改如何影響另一個表。您是否想要最好的資產,您不必考慮刪除列(例如)會影響參照完整性的某些含義)。 –