後,我執行以下查詢:價值INSERT語句不匹配值插入
INSERT INTO `temp` (`id`, `user_id`) VALUES (110, 100003568483914);
在數據庫中的結果是:
**id user_id**
110 2147483647
爲什麼在表中從什麼不同的價值被插入?
後,我執行以下查詢:價值INSERT語句不匹配值插入
INSERT INTO `temp` (`id`, `user_id`) VALUES (110, 100003568483914);
在數據庫中的結果是:
**id user_id**
110 2147483647
爲什麼在表中從什麼不同的價值被插入?
做describe temp
你會看到user_id
簽訂INT,即31位的數字+一個位爲標誌,它給你的範圍從-2^31到2^231-1(2147483647 = 2^31 -1)。
你需要做的是改變列的類型user_id
;它似乎是你存儲的Facebook用戶ID,我會推薦使用字符串;你永遠不需要對這些進行任何算術運算。
將字段類型更改爲LONG或BIGINT或無符號INT(無符號INT可能就足夠了)。
有兩個問題:首先,插入後是否出現錯誤?其次,'id'是一個自動遞增整數列嗎? – 2012-02-16 17:01:35
什麼數據類型是user_id? – 472084 2012-02-16 17:02:55
int類型的字段有符號的範圍是-2147483648到2147483647 因此,您得到最大值。將其轉換爲bigint。 – rajesh 2012-02-16 17:05:34