![](/img/trans.png)
[英]How to change the column position of MySQL table without losing column data?
[英]How to alter MySQL table without losing data?
在我的應用程序中,我進行了一些更改並將它們上傳到測試服務器。 因為我無法訪問服務器數據庫,所以我運行ALTER
命令對其進行更改。
使用方法我在服務器上運行以下命令:
ALTER TABLE `blahblahtable` ADD COLUMN `newcolumn` INT(12) NOT NULL
之后,我發現表的所有數據都已刪除。 現在表格是空白的。
所以我需要改變表而不刪除他的數據。 有沒有辦法做到這一點?
你的問題非常明顯。 您正在向表中添加新列,並將其設置為NOT NULL
。
為了使事情更清楚,我將在運行命令時解釋服務器的反應:
您添加了一個新列,因此表的每一行都必須為該列設置一個值。
由於您未聲明任何默認值 ,因此所有行都為此新列設置了null
。
服務器注意到表的行在不允許null
的列上具有null
值。 這是非法的。
要解決沖突,將刪除無效行。
這個問題有一些很好的解決方法:
為您正在創建的列設置默認值 (推薦)。
創建沒有 NOT NULL
的列,設置適當的值,然后使列NOT NULL
。
您可以創建臨時表,傳遞要更改的表中的所有信息,然后將信息返回到更改的表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.