自增长字段的疑问
请问
int identity(1,1)这样的字段,有没有可能达到int的最大值啊?
-2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
如果达到最大值,再自增长会出现什么情况?
------解决方案--------------------沒試過,如果數據多的話,定義為bigint 總夠用吧
------解决方案--------------------identity 有极限的...但是不知道达到极限会发生什么. - -
------解决方案--------------------没遇到过
如果数据量很大的话,用bigint吧
------解决方案--------------------create table test1(id int identity(2147483647,1),s varchar(10))
insert into test1(s) values( 'a ') -正常
insert into test1(s) values( 'b ') --错误如下
服务器: 消息 8115,级别 16,状态 1,行 1
将 IDENTITY 转换为数据类型 int 时发生算术溢出错误。
发生算术溢出。
------解决方案--------------------同意动物大哥... bigint 应该够用...
但是达到极限会发生什么呢? 是插不进数据?
还是会发生什么事? 等高人
------解决方案--------------------zhenmeiyisi(。。。)
多谢 学习了
------解决方案--------------------如果一直用下去,会不会爆掉?
-----------
你這總擔心是多佘的,如果你的數據真的到了自增都不夠用時,你不會做數據移轉嗎?不然的話
你的系統不是慢死了
------解决方案--------------------这个问题肯定考虑,看你的数据量。
如果是静态表,只要够用,用tinyint又何妨。
如果是流水记录,用bigint,我敢说跑1千年都不会爆,用int基本上也可以了。