社区
疑难问题
帖子详情
两个表共用一序列带来的问题。
cheniqit1
2011-02-16 09:12:53
两个表共用一序列,但是当服务运行一段时间后,发现序列当前值 小于两个表的当中最大 id 。所有导致 insert nextval 的时候 有问题。
现在以确定。没有人工的改变序列值,在插入表数据的时候都是用的 nextval. 但不知道为何会出现序列当前值 小于两个表的中的最大 id
...全文
299
15
打赏
收藏
两个表共用一序列带来的问题。
两个表共用一序列,但是当服务运行一段时间后,发现序列当前值 小于两个表的当中最大 id 。所有导致 insert nextval 的时候 有问题。 现在以确定。没有人工的改变序列值,在插入表数据的时候都是用的 nextval. 但不知道为何会出现序列当前值 小于两个表的中的最大 id
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luoyoumou
2011-02-18
打赏
举报
回复
1
-- 将序列的创建语句贴出来:莫非是采用了 cycle(循环)属性?
cheniqit1
2011-02-17
打赏
举报
回复
莫非这个问题就没有解释了。?
sadikaqy
2011-02-17
打赏
举报
回复
楼主怎么不在Oracle版块里面发呢?
coleling
2011-02-16
打赏
举报
回复
楼主发错地方了,你这是个Oracle问题,这里是SQL Server
cheniqit1
2011-02-16
打赏
举报
回复
先 nextval序列,没有insert成功的话 那么也是序列号大于 表中的max(id) 才对的。现在反而是 序列号小于,这个就有点摸不着头脑了。
幸运的意外
2011-02-16
打赏
举报
回复
序号更新在什么时候?如果先取值在更新的话就有可能出现问题。最好把他们放到一个事物中,保证操作的一致性。
快溜
2011-02-16
打赏
举报
回复
什么也没说,靠猜的?
rucypli
2011-02-16
打赏
举报
回复
两个表共用一序列?
这是什么样的业务
cheniqit1
2011-02-16
打赏
举报
回复
两个表的结构 都包含一个ID 其余字段忽略。
序列阶梯是每次自增1
估计序列比表中的一个最大的max(id)少了几万吧。
序列与两个表的ID 的关系是 在insert的时候 用到这个序列,且两个表是共用一个序列的。
-晴天
2011-02-16
打赏
举报
回复
表结构?数据结构?如何插入?如何改变?小了多少?这个序列与id的关系???
cheniqit1
2011-02-16
打赏
举报
回复
[Quote=引用 10 楼 abcjun188 的回复:]
自己写个 序列函数 或 存储过程 ,在事务里计算 max(id) + 1 ,这种方法很常用
[/Quote]
这个解决方法是好
但问题是没有找到原因 需要分析下为什么会发生这样的现象。
cheniqit1
2011-02-16
打赏
举报
回复
[Quote=引用 9 楼 sql_sf 的回复:]
引用 6 楼 cheniqit1 的回复:
先 nextval序列,没有insert成功的话 那么也是序列号大于 表中的max(id) 才对的。现在反而是 序列号小于,这个就有点摸不着头脑了。
重置种子也是有可能的
[/Quote]
这个可以确定没有重置过。
打一壶酱油
2011-02-16
打赏
举报
回复
自己写个 序列函数 或 存储过程 ,在事务里计算 max(id) + 1 ,这种方法很常用
sql_sf
2011-02-16
打赏
举报
回复
[Quote=引用 6 楼 cheniqit1 的回复:]
先 nextval序列,没有insert成功的话 那么也是序列号大于 表中的max(id) 才对的。现在反而是 序列号小于,这个就有点摸不着头脑了。
[/Quote]
重置种子也是有可能的
cheniqit1
2011-02-16
打赏
举报
回复
[Quote=引用 7 楼 coleling 的回复:]
楼主发错地方了,你这是个Oracle问题,这里是SQL Server
[/Quote] 我想问题发生的原因是一样的
关于oracle 多
表
共用
一个
序列
还是多
表
多
序列
小总结
用hibernate 操作oracle数据库,
表
主键自增,我们通常要为
表
建立
序列
,你也可以不建立自己的
序列
,(使用hibernate自带的
序列
): 现在有个
问题
:每个
表
一个
序列
和 多个
表
共用
一个
序列
那种方式比较好? 我先说一下绝大
oracle 多
表
共用
一个
序列
还是多
表
多
序列
用hibernate 操作oracle数据库,
表
主键自增,我们通常要为
表
建立
序列
,你也可以不建立自己的
序列
,(使用hibernate自带的
序列
): 现在有个
问题
:每个
表
一个
序列
和 多个
表
共用
一个
序列
那种方式比较好? 我先说一下绝大多数网民对此种
问题
的回答:最好为每个
表
建立一个索引,这样方便维护和管理! 临外一部分人认为 多个
表
...
mysql触发器实现
两个
表
共用
一个自增id
2019独角兽企业重金招聘Python工程师标准>>> ...
Oracle中用一个
序列
给
两个
表
创建主键自增功能的后果
前几天在创建数据
表
时,想偷个懒,使用一个
序列
给
两个
表
创建主键自增功能,结果。。。。。。情景:为宠物中心创建一个简单的数据库,要求如下:
ORACLE-
序列
序列
疑难问题
22,209
社区成员
121,731
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章