zoukankan      html  css  js  c++  java
  • oracle插入数据时解决和旧数据id的冲突

    我们在使用oracle创建一个主键的时候需要让他自增, 但是他跟mysql不同,需要创建序列,具体看下面:

    可以删除之前创建的sequence,我们在重新创建一个:

    DROP SEQUENCE SJGXQK_sequence; --删除

    create sequence SJGXQK_sequence  --( SJGXQK_sequence,这个代表的是你的序列的名称)
    INCREMENT BY 1 -- 每次加几个
    START WITH 1 -- 从1开始计数
    NOMAXVALUE -- 不设置最大值
    NOCYCLE -- 一直累加,不循环
    CACHE 10; --cache 可以用来提高序列值的获取速度,但有可能会浪费一些序列号,应该根据实际情况来设置 cache 的大小。 这个具体我也不清楚是怎么用的,参考别人分享的,哈哈

    然后查询下:

    select SJGXQK_sequence.nextval from dual; 看看他下一个自动插入的id是多少?

    有可能结果值就是nextval =1; 这个意思就是他会从“1”开始自动插入id。

    在这个之前我们可能有老数据存在, 这个id并不一定是从1开始的,有可能已经排序到了10、20.

    这个时候我们需要更改下他的起始值:

    alter sequence SJGXQK_sequence increment by 14;(是从14开始继续增加,这个14是根据自己的需求来定的)

    alter sequence SJGXQK_sequence increment by 1;(每次自增一位)

    如此以后, 这样他们就不会在提示我们:违反唯一约束条件了 哈哈哈哈 ~ 

    欢迎转载,共勉。

    end。

  • 相关阅读:
    VMware workstation中安装Ubuntu18.04server
    python一行命令安装chromedriver
    vim配置&相关问题
    博客园美化
    期望DP——HDU4035Maze
    [学习笔记]虚树
    线段树——51nod1593&CF515E 公园晨跑
    [STL] multiset
    [学习笔记] 线性基
    泛化物品优化树型DP——[HAOI2010]软件安装
  • 原文地址:https://www.cnblogs.com/wdnnccey/p/6041230.html
Copyright © 2011-2022 走看看