insert语句中的值与插入的值不匹配

时间:2012-02-16 17:00:02

标签: mysql insert

执行以下查询后:

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

数据库中的结果是:

**id    user_id**
110 2147483647

为什么表中的值与插入的值不同?

2 个答案:

答案 0 :(得分:1)

执行describe temp你会看到user_id是带符号的INT,即数字的31位+符号的一位,这给你范围从-2 ^ 31到2 ^ 31 - 1(2147483647 = 2 ^ 31 -1)。

您需要做的是更改user_id的列类型;看来你正在存储我建议使用字符串的facebook用户ID;你永远不需要对这些进行任何算术运算。

答案 1 :(得分:0)

将字段类型更改为LONG或BIGINT或无符号INT(无符号INT可能就足够了)。