Oracle 序列(Sequence)主要用于生成主键。但是,有时需要修改序列初始值(START WITH)时,好多人凭感觉认为:Alter Sequence SequenceName Start With N。事实上,在Oracle Db中,修改序列没有这样的语法。
  1.先删除序列,然后重新创建。不过这不是当前要讲的重点。这个方法比较方便。
  2.通过Increment By来实现修改初始值。
  例如:若序列名称是BASE_LOG_SEQ,初始值是12,而现在要设置初始值为1024,Increment By值为:1012(1024-12)
  
-- 如下三步骤完成...
;
Select BASE_LOG_SEQ.nextval FROM dual;
;

  Java 调用 Hibernate API实现

    // 由于Oracle不支持  alert sequence seqName start with 1; 这种形式,故采用曲线形式
        BigDecimal incrementNo = new BigDecimal(seq.getColumnsMax()).subtract(new BigDecimal(seq.getSeqNext()));
        // 步骤1
        String sql1 = "ALTER SEQUENCE "+ seq.getSeqName() + " Increment By "+ incrementNo.longValue() ;
        super.getCurrentSession().createSQLQuery(sql1).executeUpdate();
        //步骤2
        String sql2 =" SELECT "+seq.getSeqName()+".nextval from dual ";
        super.getCurrentSession().createSQLQuery(sql2).list();
        //步骤3
        String sql3 = "ALTER SEQUENCE "+ seq.getSeqName() + " Increment By 1 " ;
        super.getCurrentSession().createSQLQuery(sql3).executeUpdate();




Oracle 修改序列的初始值的更多相关文章

  1. Oracle修改序列(Sequence)起始值问题

    Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来修改 ...

  2. oracle修改序列

      Oracle 序列(Sequence)主要用于生成流水号,在应用中经常会用到,特别是作为ID值,拿来做表主键使用较多. 但是,有时需要修改序列初始值(START WITH)时,有同仁使用这个语句来 ...

  3. oracle对序列的操作

    select t.*, t.rowid from tbl_type t order by t.id desc Select SEQ_TBL_TYPE_ID.NextVal From Dual; ; ; ...

  4. Oracle中序列的操作以及使用前对序列的初始化

    Oracle中序列的操作以及使用前对序列的初始化   一 创建序列 create sequence myseq start with 1 increment by 1 nomaxvalue minva ...

  5. Oracle中序列(Sequence)详解

    一 序列定义 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).不占用磁盘空间,占用内存. 其主要用途是生成表的主键值,可以在插入语句中引用,也 ...

  6. oracle中序列,同义词的创建

    序列 序列是用来生成唯一,连续的整数的数据库对象.序列通常用来自动生成主机那或唯一键的值.序列可以按升序排序, 也可以按降序排序.例如,销售流水表中的流水号可以使用序列自动生成. 创建序列语法: cr ...

  7. oracle创建序列,并插入记录

    Oracle序列创建和使用创建序列 语法 CREATE SEQUENCE 序列名 [相关参数] 参数说明 INCREMENT BY  : 序列变化的步进,负值表示递减.(默认1) START WITH ...

  8. ALTER SEQUENCE 修改序列解决唯一约束冲突 unique constraint violated

    背景 自增序列会遇到也会遇到唯一约束冲突吗?是的,最常见的情况就是数据迁移之后,导致数据最大值超过序列值. 软件开发中不遇到些出乎意料的问题,总感觉不太够劲. 修改序列(ALTER SEQUENCE) ...

  9. oracle中序列的使用

    转载:http://blog.csdn.net/java958199586/article/details/7360152 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提 ...

随机推荐

  1. 为什么eclipse修改程序之后运行的时候还是前一版本的内容?

    问题:我用的是Eclipse Java Neon4.6.0,同样的这个问题也出现在其他的Eclipse的版本上,我在对我的代码内容进行修改的时候,点击运行,发现还是执行的修改之前的文件,这让我很头疼. ...

  2. css的定位和浮动

    定位 浮动 float代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  3. 【Tomcat】shell获得war包

    功能: 将maven项目打包复制到tomcat/webapps set git=C:\Users\zhengwenqiang\git set tomcat=e:\tomcat7.0.64 c: cd ...

  4. 一周中的后两天 笔记(网路基础 Python基础)

    网络基础 (统一的协议) 一,  计算机之间通过物理介质(网络设备)连接在一起 二,  计算机之间基于网络协议通信   tcp/ip五层   应用层: 传输层:tcp/udp协议 找到对应的软件 一个 ...

  5. CSS高级技巧

    使用CSS复位 CSS复位可以在不同的浏览器上保持一致的样式风格.您可以使用CSS reset 库Normalize等,也可以使用一个更简化的复位方法:· * { box-sizing: border ...

  6. STL之关联容器---set, mutilset, map, mutilmap

    STL的容器分为序列容器和关联容器.它们所表达的数据结构各有不同: 序列容器:vector(变长数组), list(链表), queue(队列), heap(堆算法)等 关联容器:set/mutils ...

  7. python自学1——接口测试

    尝试写了一个简单的接口测试,基于Python3.4,主要用到了Python读取excel以及requests库的知识,也算是对这段时间Python基础知识学习的一个巩固吧. 因为还没有学习到Pytho ...

  8. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...

  9. 拨开字符编码的迷雾--MySQL数据库字符编码

    拨开字符编码迷雾系列文章链接: 拨开字符编码的迷雾--字符编码概述 拨开字符编码的迷雾--编译器如何处理文件编码 拨开字符编码的迷雾--字符编码转换 拨开字符编码的迷雾--MySQL数据库字符编码 1 ...

  10. H5性能测试学习

    工欲善其事,必先利其器,在做H5前端性能测试之前,选择合适的工具能让我们的测试工作事半功倍.本文要提到的工具有两类: 一类是抓包工具,如Fiddler.Charles等.这类工具不仅可以抓包,还可以对 ...