2012-02-16 47 views
2

後,我執行以下查詢:價值INSERT語句不匹配值插入

INSERT INTO `temp` (`id`, `user_id`) VALUES (110, 100003568483914); 

在數據庫中的結果是:

**id user_id** 
110 2147483647 

爲什麼在表中從什麼不同的價值被插入?

+0

有兩個問題:首先,插入後是否出現錯誤?其次,'id'是一個自動遞增整數列嗎? – 2012-02-16 17:01:35

+0

什麼數據類型是user_id? – 472084 2012-02-16 17:02:55

+2

int類型的字段有符號的範圍是-2147483648到2147483647 因此,您得到最大值。將其轉換爲bigint。 – rajesh 2012-02-16 17:05:34

回答

1

describe temp你會看到user_id簽訂INT,即31位的數字+一個位爲標誌,它給你的範圍從-2^31到2^231-1(2147483647 = 2^31 -1)。

你需要做的是改變列的類型user_id;它似乎是你存儲的Facebook用戶ID,我會推薦使用字符串;你永遠不需要對這些進行任何算術運算。

0

將字段類型更改爲LONG或BIGINT或無符號INT(無符號INT可能就足夠了)。