我在mysql数据库中创建了一个两列键(app_id,dated),当我运行下面的查询时,我遇到了一个问题
INSERT INTO `facebook_application_shares` (`user_id`, `app_id`, `dated`, `stats`) VALUES ('80', '269456199802533', '2012-04-24', '0')
我得到以下错误-即使应用程序id是269456199802533而不是2147483647
Duplicate entry '2147483647-2012-04-24' for key 1
然后当我检查实际的db表时,值实际上是“2147483647”
我很困惑
最佳答案
2147483647
或0x7FFFFFFF
是MySQL
可以存储在INT SIGNED
列中的最大数(您似乎是这样)。更大的值会被截断。
使您的app_id
aapp_id
。
注意BIGINT UNSIGNED
仍然是一个INT(100)
整数,其中an optional hint to an application不显示大于4-bit
的数字:
应用程序可以使用此可选显示宽度来显示整数值,该整数值的宽度小于通过用空格左填充为列指定的宽度。(也就是说,此宽度存在于结果集返回的元数据中。是否使用取决于应用程序。)
并不是说它真的能够存储100
。