我们在使用 Oracle 数据库的时候,有时候会选择使用自增序列作为主键。但是在开发过程中往往会遇到一些不规范的操作,导致表的主键值不是使用序列插入的。这样在数据移植的时候就会出现各种各样的问题。当然数据库主键不使用序列是一种很好的方式,但是维护的是老代码,所以并不能去修改它。于是写一个脚本将当前表的序列更新为主键最大值 + 1。

DECLARE
vnumber NUMBER;
nnumber NUMBER;
BEGIN
SELECT ((SELECT max(ana_id) FROM ANA_QUALITYSPEC_MON) -
ANAQUALITYSPECMONSEQ.nextval)
INTO vnumber
FROM dual;
IF vnumber > 0 THEN
EXECUTE IMMEDIATE 'ALTER SEQUENCE ANAQUALITYSPECMONSEQ INCREMENT BY ' ||
vnumber;
SELECT ANAQUALITYSPECMONSEQ.nextval INTO nnumber FROM dual;
EXECUTE IMMEDIATE 'ALTER SEQUENCE ANAQUALITYSPECMONSEQ INCREMENT BY 1 cache 20';
END IF;
END;

本文由个人 hexo 博客 co2fe.com 迁移
date: 2017-08-15 20:21:08

转载于:https://www.cnblogs.com/manastudent/p/10190855.html

Oracle序列更新为主键最大值相关推荐

  1. oracle+创建序列自增,oracle序列详解和建立自增主键

    序列: 是oacle提供的用于产生一系列惟一数字的数据库对象.sql l 自动提供惟一的数值数据库 l 共享对象性能 l 主要用于提供主键值测试 l 将序列值装入内存能够提升访问效率spa 1.首先建 ...

  2. oracle主键增长方式,oracle 自增长主键

    oracle自增长主键 首先,你要有一张表!CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25), PHO ...

  3. Oracle序列的概念、创建和使用

    sequence概念及作用 sequence是用来在多用户环境下产生唯一整数的数据库对象.序列产生器顺序生成数字,它可用于自动生成主键值,并能协调多行或者多表的主键操 作.没有sequence,顺序的 ...

  4. Oracle序列使用:建立、删除

    在开始讲解Oracle序列使用方法之前,先加一点关于Oracle client sqlplus的使用,就是如果执行多行语句的话一定要加"/"才能表示结束,并执行!本篇文章的主题是通 ...

  5. Oracle序列小结

    定义: 序列是一个计数器(序列号生成器),可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字),是oracle提供的用于产生一系列唯一数字的数据库对象.通过创建oracle序列和触发器来实 ...

  6. Oracle 序列使用整理

    当前使用的oracle版本如下: 创建序列: CREATE SEQUENCE seq_test INCREMENT BY 1 序列每次增加的值,负数表示递减,缺省值为1 START WITH 1 序列 ...

  7. 基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增

    基于ruoyi+vue+elementUI实现列表,新增,附件上传,tab+springBoot+mybatis+oracle序列+批量新增 页面效果 列表页面 新增页面 详情页面 代码实现 列表+新 ...

  8. Oracle序列sequence

      序列就是一组数字的队列.序列具有以下特征: 自动生成唯一编号: 是一个可共享的对象: 通常用于创建主键: 可替换应用程序中自增之类的相关代码: 如果将序列高速缓存放到内存中,则可以提高序列值访问效 ...

  9. oracle 查询公有同义词,Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)

    一团网资讯 一团资讯 > oracle > Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)... Oracle序列(sequence ...

最新文章

  1. 四川大学计算机学院男女生比例,川大、电子科大新生男女比例大PK 比例更佳的是……...
  2. ESXI上的vm虚拟机文件被锁定无法POWER ON的问题处理
  3. CSS 定位之绝对与相对
  4. EASYHOOK逆向寒假生涯(20/100)
  5. [C++STL]常用排序算法
  6. Zabbix Server设置主机监控
  7. 啃碎并发(二):Java线程的生命周期
  8. matlab混合编程 mex,求教:matlab混合编程关于mex内自定义函数的输出
  9. python app自动签到器_Python实现自动签到脚本功能
  10. HTML+CSS小米注册登录界面
  11. Google SketchUp Cookbook: (Chapter 4) Advanced Intersect and Follow Me Techniques
  12. ##DBUtils工具类的正确使用(一)
  13. 面向对象编程原则(06)——依赖倒转原则
  14. 京东关闭骚扰电话和广告推送
  15. Java(Spring boot)实现生成二维码
  16. 聊聊数据库~5.SQL运维上篇
  17. delphi透明panel组件或者制作方法
  18. 【怎么辨别一个公司是不是外包?】
  19. idea java 阿里巴巴_AS 阿里巴巴Java开发规约 CheckStyle-IDEA
  20. map_server地图保存

热门文章

  1. 【CodeForces - 1042B】Vitamins(去重方法,二进制或stlmap,水题)
  2. Apollo进阶课程㉛丨Apollo ROS概述
  3. 倍福 在 vs 里 编程 是怎么做到的_截图里的文字要改,字体怎么做到一模一样?...
  4. python 深copy_python中的深copy和浅copy
  5. 反序列化 php R类型,pikachu-PHP反序列化、XXE、SSFR
  6. rust睡觉按键没反应_Rust 有问有答之 use 关键字
  7. linux 文件列添加字段,如何在linux中加入所需列的文件?
  8. keil3如何放大字体_国潮海报不会做?送你国风字体+图案笔刷+PSD素材+包装样机...
  9. C++ STL 线性容器的用法
  10. (多线程)leetcode1195. 交替打印字符串 最简单解法一个变量搞定