数据库表主键自动增长列id的极限是多少?长度应该设置为多少? 增长从1开始

rt,... rt, 展开
 我来答
百度网友69c7c72
推荐于2016-01-25 · 超过19用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:49.8万
展开全部
一般数据库所谓的自增列都是通过序列来完成。创建序列的语句为
CREATE SEQUENCE name
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
或者MAXVALUE xxxxx
NOCYCLE -- 一直累加,不循环

所以极限就看你自己怎么定义了。长度的话,引用序列的字段可以定为number类型,int类型等数字类型就可以了。
追问
如果不设置最大值,那就没有极限了吗?这张表就可以随便存储数据了么?
那么可以存储9999999999^9999999999(这个数随便写的,)条么?
或者比这个数字更大呢?也可以么? 那主键的变化是什么样子呢?
追答
看你主键的那个字段类型是什么,支不支持9999999999^9999999999这种数据级的数字,无限大的程度是由你机器决定的。真正使用的时候,还要看实际的业务需求!
百度网友19cd9b1
2013-03-12 · TA获得超过587个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:334万
展开全部
和哪种数据库有关系。
通常, 数据库的INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。
一般长度不需要设置,系统自动的,你只需要指定类型就行了。
追问
就拿mysql来说吧,如果数据的条数超过  -2的31次方(-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数的个数呢? 那么主键是怎么变化呢?
追答
int不够了就改为bigint。
再不够了就用GUID。
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个32位十六进制数。例如:2F9619FF-8B86-D011-B42D-00C04FC964FF 。
这下肯定够了吧。
mysql没有这个guid,不过可以用算法生成。

其实int应该就够了,数据太大的话就应该分区了,不能把这么多数据放一个表里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyfukk
2013-03-11 · TA获得超过1187个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:631万
展开全部
看你的ID的数据类型
int就是int的范围
bigint就是bigint的范围
如果id是tityint当然只有到255
更多追问追答
追问
如果数据达到最大,再有数据会怎么样呢?
追答
溢出错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式