2011-07-21 85 views
0

當我們添加一個新的表格中,我們犯了一個錯誤:一個領域是一個varchar(255),但我們必須寫連接查詢。 所以我們改變表格做一個char(6)。MySQL將varchar轉換爲char是什麼?

我的問題是:什麼在這種情況下,MySQL的呢? 它修剪正確嗎?

+0

你爲什麼要加入char字段。最好使用一個整數。 –

回答

3

不是什麼MySQL的或不這樣做,爲什麼不只是改變自己之前轉換數據的擔心。

例如

UPDATE YourTable 
SET YourField = LEFT(YourField,6); 

ALTER TABLE YourTable MODIFY COLUMN YourField Char(6) 

你應該注意的是,如果你的列數據太長,它不會讓你做ALTER假設啓用嚴格的SQL模式見SHEF的完整的答案

0

的MySQL甚至不會讓你改變表如果有任何情況,你會丟失數據(例如,一行有一個字段的文本超過六個字符的條目),所以你最好將數據轉換成你認爲合適的方式。

1

它將嘗試轉換格式。在你的情況下,該列是一個字符串類型,所以如果沒有啓用嚴格的SQL模式,它將截斷該值。

當您使用CHANGE或MODIFY更改數據類型時,MySQL會嘗試 儘可能將現有列值轉換爲新類型。

警告此轉換可能導致數據的改變。例如,如果您縮短字符串列,則可能會截斷值 。爲了防止 操作成功執行的,如果轉換到新的數據類型 會導致數據丟失,使用 ALTER TABLE之前啓用嚴格的SQL模式(參見5.1.6節,「SQL服務器模式」)。

閱讀罰款warning下降了頁面的五分之二。

+1

+1 –