在使用oracle数据库时,当给一个表设置自增字段时,我们经常会使用到序列+触发器来完成。但当你需要对数据库进行导入导出时,序列很容易出问题。

当你将数据库导出后,导入到另一个数据时,你会发现另一个数据库里的序列当前值会小于之前数据库的当前值,由此会导致你往该表插入数据时,会出现自增字段的值重复的情况,如果这个自增字段为主键,则你的插入操作就好报错。

在网上找了一下资料,发现原来我们对数据库执行导出操作时,数据库先进行的是序列的导出,然后再进行表数据的导出,如果在序列导出过程中,该系统一直在使用,则序列导出完成后,开始导表数据的时候,有可能表数据因为系统在不断的使用导致表数据增长,里面的序列当前值已经增加了很多。当数据库导出完成后会造成数据表中的实际记录跟序列的当前值不一致。

该问题的解决办法:在导入数据库成功后,重建序列,将序列当前值修改为表记录自增字的最大值+1,即可。

1、Create Sequence

你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,

CREATE SEQUENCE emp_sequence

INCREMENT BY 1   -- 每次加几个

START WITH 1     -- 从1开始计数

NOMAXVALUE       -- 不设置最大值

NOCYCLE          -- 一直累加,不循环

CACHE 10;

2、Alter Sequence

你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop   sequence 再 re-create .

Alter sequence 的例子

ALTER SEQUENCE emp_sequence

INCREMENT BY 10

MAXVALUE 10000

CYCLE     -- 到10000后从头开始

NOCACHE ;

影响Sequence的初始化参数:

SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。

可以很简单的Drop Sequence

DROP SEQUENCE order_seq;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22969361/viewspace-1180052/,如需转载,请注明出处,否则将追究法律责任。

oracle 序列号同步,关于序列同步的问题相关推荐

  1. 如何实现Oracle数据库之间的数据同步?

    我们都知道,在Oracle数据库的管理与开发工作中,总会存在着一些表数据和基础资料数据,这时需要有效的将这些数据库进行同步合并,有没有什么简单的方法可以实现Oracle数据库之间的数据同步呢?在此诚恺 ...

  2. redis和oracle同步方案,redis与oracle之间怎么实现数据同步?

    redis与oracle之间怎么实现数据同步? 更新时间:2019-03-12 16:02 最满意答案 没有直接同步的方法,这个依赖于你的架构设计. 插入时同步,比如先更新了oracle,再更新red ...

  3. ogg实现Oracle库到Oracle库的数据实时同步

    环境 服务器一 IP地址: 192.168.89.137 Oracle数据库版本 11.2.0.4.0 Oracle数据库实例名 orcl Oracle数据库端口 1521 待同步数据库schema ...

  4. oracle数据库linux冷备,linux/windows系统oracle数据库简单冷备同步

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 Linux/windows系统oracle数据库简单冷备同步 我们有一个重视财务数据安全性的财务系统,并且我们有两个 ...

  5. oracle和mysql数据实时同步_FileYee文件实时同步备份软件,再不怕数据丢失

    日常工作中你是如何保存您的数据文件?简单的保存在电脑或者硬盘吗,其实数据如果单纯的放在一个终端存储是一件危险系数非常高的事情,尤其是企业的重要数据.今天小编给大家带来一款国产良心文件实时同步备份软件- ...

  6. 网络游戏数据同步的实现 一:状态同步、帧同步的基本原理概述

    什么是游戏的数据同步 数据同步是指使用某种方式让同在一局游戏中的多个客户端保持游戏进程同步. 什么游戏需要数据同步? 联机游戏(cs.饥荒.dead4ife2等) 网游(魔兽.天堂.传奇) 需要快照. ...

  7. oracle两表链接序列跳序,Oracle学习之 序列(Sequence)

    Oracle学习之 序列(Sequence) [Oracle学习]之 序列(Sequence) oracle文档:https://docs.oracle.com/cd/B28359_01/server ...

  8. mysql otter 数据同步_MySQL数据同步之otter

    一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...

  9. oracle 删序列,oracle创建和删除序列

    |NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; START WITH:定义序列的初始值(即产生的第一个值),默认为1. INCREMENT:用 ...

最新文章

  1. java volatile 多线程,java多线程-volatile的使用
  2. Batch Normalization的TensorFlow实现
  3. Deepin下tftp客户端传送升级文件失败问题分析
  4. java指针的数组_java 指针 数组的使用
  5. NS2相关学习——创建Xgraph的输出文件
  6. ubuntu和linux服务器,Linux服务器系统CentOS和Ubuntu Server如何选择? | 偶乃秋辰
  7. RHCE 学习笔记(5)- 本地用户和组的管理
  8. 批量导入经纬度点到奥维地图中
  9. C语言 打印九九口诀表
  10. 外贸建站需要注意的事项
  11. 新兴科技成果——越穷越要云计算
  12. 深入理解GAN对抗生成网络
  13. 怎么搭配丝袜优雅不低俗?
  14. 如何入职阿里前端岗?
  15. 一文读懂背照式CMOS图像传感器
  16. Eolink 征文活动- -后端研发需要的API文档工具
  17. js移动端rem.js自适应布局代码
  18. 适用于Windows11 任务栏开始菜单和图标,资源管理器显示异常修复的方法
  19. 如何下载Ubuntu镜像
  20. 爬取网站某网站所有通知

热门文章

  1. Microbiome:揩老鼠皮毛揩来高分文章——野生哺乳动物的皮肤和肠道微生物群对环境污染做出的反应
  2. 钻进眼球的致盲寄生虫威胁近亿人,却只是生存竞争的失败者
  3. python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error、SMAPE指标解读、指标使用的注
  4. R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句
  5. R语言使用caret包对GBM模型进行参数调优实战:Model Training and Parameter Tuning
  6. R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型
  7. python代码判断指定日期是当前年的第多少天
  8. 什么是存储过程?什么是触发器?SQL中存储过程与触发器的区别是什么?
  9. c4android资源,OpenC4Android开发环境搭.doc
  10. Java程序设计-基础知识