本人ORACLE菜鸟- -!
由SQL SERVER2000导入ORACLE的数据库一份后,由于在SQL SERVER中主键在HBM中的配置是NATIVE,然后导致表中的主键(主键是NUMBER,自增的)有很多空缺,如:删除了一个主键是2的数据后,表中主键就是1,3,4。现在移植到ORACLE后,HBM相应改为SEQUENCE或者DEQHILO,但是程序都会出现ORA-00001: 违反唯一约束条件的错误。请教各位大大们,怎么才能让ORACLE中的主键由最大的那个开始自动增长呢?或者有什么办法能使表中主键重新排序?在线急待谢谢了  T-T

解决方案 »

  1.   

    创建序列的时候
    把start with后面的数字改成当前表中关键字的最大值加1
    create sequence num
    increment by 1
    start with 1
    nocache
    nocycle
      

  2.   

    最大值加1?能帮忙写详细的语句吗?
    另外,我是通过HBM能自动完成自动增加的,出现我文中的错误,能不能在在HBM中或者什么地方设置,使得他能从最大的数字开始自加?或者用什么方法能让主键重新排序?
      

  3.   

    HBM相应改为SEQUENCE或者DEQHILO这个sequenct的start with 改成目前表中最大值