怎样每天都使序列重新置一

luhongjun 2007-07-15 07:17:47
系统中需要使用一(日期+序列)的主键,也就使要求序列每天都需要重新建立。我使每次使用序列之前判断以日期为序列名的序列是否存在,如存在直接使用,不存在建立新序列,删除旧序列来完成,非常烦琐,是否有好一点的办法?

...全文
344 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
icefirelxb 2007-07-17
  • 打赏
  • 举报
回复
序列的值不能回滚,并且序列的连续性不一定被保证。在建序列的时候,加一句 no cache能够加强序列的连续性
luhongjun 2007-07-17
  • 打赏
  • 举报
回复
shangqiao(伤桥)
icefirelxb(icefire)
谢谢两位,使用job可以满足要求。

因为序列的不可回滚性,所以使用序列做关键字时是不连续的,能不能有好办法解决这个问题?
Well 2007-07-17
  • 打赏
  • 举报
回复
建立一个通用的存储过程,以及一个表来保存数据库里的最大记录数
这样就可以进行处理、
shangqiao 2007-07-16
  • 打赏
  • 举报
回复
有呀,sql语句中的序列名字就直接使用日期不就可以了,定时生成一些序列还删除一些序列,不用去判断
shangqiao 2007-07-16
  • 打赏
  • 举报
回复
"建一个存储过程并设为每天凌晨自动运行的job,内容就是每天重建那个序列。"这个时刻不好控制,零点并不一定是零点运行,容易导致边缘问题
icefirelxb 2007-07-16
  • 打赏
  • 举报
回复
建一个存储过程并设为每天凌晨自动运行的job,内容就是每天重建那个序列。
icefirelxb 2007-07-16
  • 打赏
  • 举报
回复
to shangqiao(伤桥),
理论上是这样,可是实际业务逻辑中,那个时间段一般是没人操作的,何况这个所需时间很短。即使是这样,保险起见,执行存储过程的时候,把那个表锁住总可以了吧。

17,380

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧