我有一个表,其中包含一列tos_id,该列的数据类型为bigint(20(当从我的PHP/MySql应用程序中保存如下示例时,我看到以下数据:
tos_id在HTTP网络选项卡中:9112884569788786
MySql表列中实际插入的tos_id值:9112884569788700
另一个示例:
网络选项卡中的tos_id:6875884568568743
在MySql表列中插入tos_id:6875884568568000
我研究了许多论坛和帖子,这些论坛和帖子说,为了保存一个大整数,比如长度为25或30位的整数,bigint(20(是最可取的。我很困惑,如果我做错了什么,或者我应该以其他方式使用它,任何帮助都将不胜感激。提前谢谢。
我在保存时看到了这个问题,试图在我们的网络应用程序中为分析节省实时的网站数据。
您的"无数的诽谤和帖子&;是错误的。如果要在不截断数据的情况下存储30位数字,则需要使用decimal(30,0)
。
bigint(20)
指定bigint类型,显示宽度为20。显示宽度对数据没有影响,在MySQL的最新版本中不赞成指定它。bigint,无论您指定什么显示宽度,都可以存储数字9223372036854775808到9223372036864775807,因此任何18位数字或大多数19位数字。mysql中没有允许在不截断的情况下存储20个或更多数字的整数类型。
小提琴