我有一個mysqldump文件是從產品的早期版本創建的,無法導入到產品的新版本中,因爲db結構稍有變化(主要是改變了不是NULL DEFAULT 0到UNIQUE KEY DEFAULT NULL)。在導入之前更改mysqldump文件
如果我只是導入舊的轉儲文件,它將會出錯,因爲默認值爲0的列現在會破壞UNIQUE約束。
要手動更改mysqldump文件或導入到臨時表並將其更改,然後複製到新表中將很容易。但是,有沒有辦法以編程方式執行此操作,因此它是可重複的而不是手動的? (這將需要爲此產品的許多實例發生)。
我在想,像是禁用導入的關鍵約束,然後將所有值= 0設置爲NULL,然後重新啓用關鍵約束?
這可能嗎?任何幫助讚賞。
感謝Gary--我結束了刪除索引和然後進行導入和轉換,然後重新應用索引 - 我讀過UNIQUE_CHECKS有一些奇怪的行爲,並且您寫的這些語句不起作用。 理論似乎工作,但感謝您的意見! – julio 2010-06-11 22:33:07