2013-08-17 90 views
1

我試圖插入一個條目到我的分貝,但我得到不同的結果上選擇查詢。MySQL損壞的插入

INSERT INTO `mobilpay_sms_log` (
     `id` , 
     `messageid` , 
     `user` , 
     `sms_key` , 
     `sender` , 
     `final_value` , 
     `brute_value` , 
     `message` , 
     `code` , 
     `status` , 
     `time` 
     ) 
     VALUES (
     NULL , '20130814195225:0721254789', '0', '10752000000', '0721547896', '10.00', '10.00', 'LICENTA 111', '8A5SSVPQ', 'FINISHED', 
     '20130814195225' 
     ); 

選擇後,我從「sms_key」字段,「2147483647」得到奇怪的值。 sms_key結構是int(20)

回答

2

這是因爲int不能存儲那麼大的數字。您將需要將其存儲在long int或只是varchar中。以下是有關整數尺寸在MySQL的詳細信息:

http://dev.mysql.com/doc/refman/5.0/en/integer-types.html

在列規範(20)數量限制了可以存儲在您的專欄文字的只算。

此外,我會非常小心地將電話號碼存儲爲整數。更多的解釋,爲什麼:

What's the right way to represent phone numbers?

我相信你可以在你的發件人欄這樣的問題。

+1

當我開始使用MySql時,我個人最喜歡的是BigInt(2),我在某人的模式中看到了我最大的一個祕密。 –

+0

我不認爲這是一個電話號碼,但點的立場。除非你用數字進行運算,否則你可以使用varchar。 – JJJ