[英]mysql alter table won't work in php if column have incorrect values
我的桌子上有一個varchar列。 有時列數據可能為空,有時可能包含一些奇怪的字符。 所以我試圖將列的數據類型更改為十進制15,4。
所以這是我的PHP代碼
mysql_query("ALTER TABLE income CHANGE total total DECIMAL (15,4)", $db);
我運行代碼沒有任何問題(沒有錯誤),但是當我檢查表收入時,數據類型尚未更改為十進制。 但是當我直接將查詢運行到mysql中時,該列將成功更改為十進制,但是如果沒有mysql顯示一些警告,例如
Warning Code : 1292
Truncated incorrect DECIMAL value: ''
但要點是,當我直接在mysql中運行查詢時(我正在使用sqlyog),數據類型轉換成功,但是當我嘗試在php中運行查詢時,數據類型轉換成功。 知道為什么嗎? 我該如何避免呢?
當處理更大的數字時(即,選擇LENGTH()
),當長度>65
而不是> 81時不會發生截斷,
然后發出有關“截斷了不正確的DECIMAL值:”的警告,該錯誤本來已經>65
。
在您的情況下,您可能需要處理數字,因此長度>15
編輯:遵循您的要求,使所有值都為小數。
UPDATE income SET total = CAST(total AS DECIMAL(15,4))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.