注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 利用IPSec实现网络安全之..
 帮助

让SEQUENCE记录不变的信息【RECORD STATIC NUMBER IN SEQUENCE】


2007-11-21 17:24:02
 标签:ORACLE SEQUENCE   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://miracle.blog.51cto.com/255044/51706
    大家都知道ORACLE的SEQUENCE这个“发号器”。一般来讲做为记录的辨别唯一数据信息是常常会用到的。通过NEXTVAL得到相关“可变”数值。(通过CURRVAL得到上一次执行NEXTVAL的数值)
    但是它的一个不起眼的参数,却是记录一些重要的“不变”信息。这个参数就是minvalue,通常情况下我们如果在建立序列时,如果不指定,这个minvalue的值就是1。并且很多情况下,这个参数都不会引起大家的注意。但是有时这个参数会很起作用!
    在一次数据库割接后,应用开始运行。但因后来发现应用存在问题,XX移动要求切回原数据库上的应用。但是问题是当时新应用已经在新数据库上运行了几个小时,在切回原数据库后原应用又运行了近一天时间。次日,在重新割接数据库。一个重要问题就出现了,新应用在新数据库上曾经运行了几个小时,其中一张核心数据记录表确实在这几个小时中发生了变化。
    还好,这个表使用序列生成的值作为唯一索引,而我在新库中创建序列时,是使用了minvalue的(即在创建之时minvalue=start with),这个值没有变,我可以通过查询大于等于这个minvalue的值来确定!
     并且这个属性可以通过语句进行修改:
     alter sequence xx minvalue XX;

     -----
     作为DBA要找多种手段,给自己留“后路”
   
 
   
  
  

本文出自 “Be the miracle!” 博客,请务必保留此出处http://miracle.blog.51cto.com/255044/51706





    文章评论
 
2007-11-21 22:19:20
我也要留个后路
但自己的知识有限啊

2007-11-22 10:49:45
往往一些不起眼的参数 却起到很关键的作用 oracle现在还没有用过 以后肯定会用到!

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: