2014-03-19 49 views
0

我在表中有一列BEDS,其類型爲int(11)現在有一個需求,我需要將它更改爲double,它可以帶十進制值也是。 這裏是我的代碼可以使用:Mysql將列數據類型從整數更改爲雙精度,而不會丟失舊數據

ALTER TABLE t1 MODIFY BEDS double; 

但是在這裏,我只是擔心像我要去失去它已經存在的數據? 如果是這樣,那麼我可以做什麼替代更新影響現有的數據?

+0

將'int'改爲'double'對我來說似乎很奇怪(因爲第一種類型是固定的而精確的,而第二種不是)。你確定你不會使用'decimal'嗎?並且 - 不,不會有數據丟失 –

+0

沒什麼可擔心的。因爲在從int變爲double的時候不會丟失任何數據 – Andolasoft

回答

0

如果你願意,你可以在你的表BEDS_double創建一個新的領域,然後將數據從現有領域擁有複製到新的領域:

UPDATE TABLE 
SET BEDS_double = BEDS; 

但沒有真正需要做到這一點。如果您將字段的類型從int更改爲double,則不會丟失任何數據。另一方面,如果您從double轉換爲int,則可能會失去精度,並且數據可能會因四捨五入而受到影響。

相關問題