2013-08-17 65 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