2014-10-07 78 views
2

我試圖添加一個長度爲11的數字,但是當我在數據庫中輸入它時,它不能。如果我嘗試添加一個長度爲10的數字,它可以。行1的列'contact_no'超出範圍值

這是錯誤:

ERROR 1264: 1264: Out of range value for column 'contact_no' at row 1 
SQL Statement: 
INSERT INTO `mcs`.`new_table` (`id`, `contact_no`) VALUES ('1', '12345678901') 
+0

這個問題看起來很簡單 - 你沒有足夠的存儲空間分配給列。你能分享你的專欄定義嗎? – 2014-10-07 13:56:09

+0

這是一個問題。或只是一個狀態報告? – spencer7593 2014-10-07 14:11:51

回答

0

請檢查contact_no列的數據類型。 '12345678901'超出了它的大小。

1

將您的數據類型contact_no更改爲BIGINT
MYSQL official website檢查不同數據類型的範圍。
我個人建議你使用varchar,因爲你不需要比較聯繫號碼與任何字段。

3

目前還不清楚你問的是什麼問題。

爲什麼會返回此錯誤?

可能,contact_no列的數據類型爲INT(32位整數),並且您試圖分配一個大於所支持的最大值的值。

有符號的32位整數的最大值是2,147,483,647。 (2^31-1的是十進制值。對於一個32位無符號整數,最大值爲2^32)。

,這不是問

如果需要存放一些其他問題值大於INT數據類型支持的最大值時,可以將列定義爲不同的數據類型。

例如,BIGINT給出無符號的最大值2^63-1。

如果您需要最多12位十進制數字,您可以使用DECIMAL(12)數據類型。