Oracle 生成多位不重复的纯数字序列(Sequence)

MySQL、Oracle 生成随机ID、随机数、随机字符串 阅读详情

一、简述

MySQL 可以通过设置主键自增长实现 ID 的递增,但是 Oracle 数据库中并没有自增字段,Oracle 使用序列来实现ID“自增长”。Oracle 序列主要用于生成流水号,在应用中经常会用到,特别是作为 ID 值,拿来做表主键使用较多。序列:是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。

二、语法

1、Create sequence (生成20位)

DECLARE
    NUM NUMBER;
BEGIN
    SELECT COUNT(*)
      INTO NUM
      FROM DBA_OBJECTS DB
     WHERE DB.OBJECT_TYPE = 'SEQUENCE'
           AND DB.OWNER = 'USER_ME'
           AND DB.OBJECT_NAME = 'SEQ_ME_LSH';
    IF NUM = 0
    THEN
        EXECUTE IMMEDIATE 'create sequence USER_ME.SEQ_ME_LSH  minvalue 10000000000000000000 maxvalue 99999999999999999999 start with 10000000000000000000 increment by 1 cache 30';
    END IF;
END;
/

2、对所有用户开放该序列

create or replace public synonym SEQ_ME_LSH for USER_ME.SEQ_ME_LSH;

3、Delete sequence

drop sequence SEQ_NAME;

4、查询序列的值

当刚创建好序列后,不能直接查询当前序列的值,必须先用 nextval 查询下一个序列的值,之后才可以使用currval查询当前序列的值。

select SEQ_NAME.currval from dual;
select SEQ_NAME.nextval from dual;

5、更改当前序列值

-- n 为数字,可正可负可零
alter sequence SEQ_NAME increment by n;
Oracle数据表ID自增操作 阅读详情

相关推荐

Oracle的“自增列“(身份列 Identity Columns)

当指定身份列时,系统会隐式为其创建一个序列生成器(Sequence Generator SG),这个序列生成器为身份列提供值。从12c开始,Oracle提供了身份列(Identity Column)特性,在创建表时可以实现类似MySQL中的自增(auto_increment),从而为每一行数字自动生成ID值(身份)。观察上面的插入的数据,可以看到用户指定的值是可以与序列生成器的值重复的,因此。,它会与表中已有的数据生成相同的值,同时用户也可以再次插入已存在的值。示例:创建身份列时显式指定属性。

最简单的方法,解决最实际的问题。 9012

使用Oracle实现完美的不重复随机数(oracle不重复随机数

为了解决这个问题,我们可以使用Oracle的随机数生成函数来生成不重复的随机数。在这个SQL语句中,我们使用了Oracle的DBMS_RANDOM.VALUE函数来生成一个1到1000000之间的随机数,并使用TRUNC函数将其转换为整数。我们还使用了Oracle的CONNECT BY LEVEL语句来生成一个由1到1000000递增的数字序列,最终得到了1000000个不重复的随机数。我们可以使用Oracle自带的序列来生成不重复的连续整数值,也可以使用Oracle的随机数生成函数来生成不重复的随机数。

可小辉的博客 3561

Oracle Sequence序列详解:从原理到实战的高性能ID生成方案

在数据库设计中,唯一标识符的生成是核心基础技术之一,尤其在分布式和高并发场景下,高效、可靠的ID生成机制至关重要。其原理通常基于预分配、内存缓存和原子操作,以确保全局唯一性和高性能。这种技术价值在于解耦业务逻辑与数据存储,支持高吞吐量插入操作,同时保持事务安全。常见的应用场景包括订单号生成、交易流水号、用户ID分配以及多系统间的数据标识同步。本文聚焦Oracle数据库中的Sequence序列,深入解析其作为独立数字流水号生成器的设计哲学,探讨如何通过参数配置(如CACHE、ORDER)在性能与一致性间取得平

weixin_30902251的博客 359

oracle 6位随机数,【Oracle学习笔记】Oralce随机数与随机取样

在实际开发过程中我们经常会遇到使用随机数,或对数据进行随机抽样分析的情况,这个时候我们就需要用到了Dbms_Random数据包、Sample或Sample block函数了。1 取随机数Oralce把所有有关随机数的操作都封装在了PL/SQL包DBMS_RANDOM里,极大地方便了我们的使用。它具有以下函数:其中,initialize,random,terminate函数在Oracle11g中已不...

weixin_39577052的博客 938

股票分时数据获取-东方财富

获取下股票分时数据,分时均价下线,分时成交额等,用于量化t0交易条件还是很不错了的。

meiaoxue1234的博客 1万+

一文带你看懂SAP-HANA的基本架构与原理

创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。

丷江南南的博客 5070

Oracle中的sequence

<br />      来源:http://baike.baidu.com/view/71967.htm<br /><br />      Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。 <br />  Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。 <br

heqiyu34的专栏 1784

MRST开源油藏模拟:从入门到精通的全流程指南

本文全面介绍了MRST开源油藏模拟工具的使用方法,从环境搭建到核心功能实战,再到性能优化和工业级应用。MRST作为一款基于MATLAB的开源工具,为油藏工程师提供了强大的数值模拟能力,特别适合教学和科研场景。文章还分享了二次开发技巧和常见问题解决方案,帮助读者快速掌握油藏模拟技术。

beer8的博客 326

ORACLE Sequence 自增长

Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。根据我个人理解,Sequence是数据中一个特殊

Laughing 3651

华为海思2026届数字IC秋招笔试高频考点解析与实战技巧(2025最新版)

本文深入解析华为海思2026届数字IC秋招笔试的高频考点与实战技巧,涵盖时序优化、低功耗设计、DFT规则等核心模块。针对2025年最新真题,提供详细的解题思路和工程经验,帮助考生高效备考。特别关注SystemVerilog约束随机测试等新增考点,助力考生在秋招笔试中脱颖而出。

m2n3o4p5的博客 413

NIDS——suricata(一)

NIDS——suricata环境安装和规则编写

weixin_58666006的博客 1272

Oracle Sequence

Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。 Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQLServer、Sybase等数据库没有Sequence。 下面是简单总结一下Oracle中的sequen

欲穷千里目,更上一层楼 1026

PADS Layout中快速导入自定义元器件封装的实用技巧

本文详细介绍了在PADS Layout中高效导入自定义元器件封装的实用技巧。针对封装“找不到”、“对不上”、“导不进”三大痛点,系统梳理了从封装文件来源识别、库规划管理,到三种核心导入场景(从库文件添加、从其他设计借用、处理第三方格式)的完整操作流程,并提供了导入后的关键验证清单与常见问题排查方法,旨在帮助硬件工程师快速掌握这一提升设计效率的关键技能。

weixin_29302047的博客 375

Oracle Sequence序列的介绍与使用

前言前面因为项目数据导数据,我们介绍过《Oracle通过ODBC连接SQL Server数据库》,在实际导入过程中新的数据表结构里面存在不少ID的列,所以就用到了Oracle的序列,这一...

Vaccae的博客 215

基于STM32LXXX的模数转换芯片ADC(TLA2528IRTER)驱动C程序设计

define TLA2528_ADDR 0x12 << 1 // 用于HAL传输的8位地址(写入为0x24,读取为0x25)// 100kHz (示例值,需根据实际时钟计算)#define TLA2528_REG_PIN_CFG 0x00 // 引脚配置寄存器。#define TLA2528_REG_CHN_SEL 0x01 // 通道选择寄存器。

myron6688的博客 228

【YOLOv11工业级实战】15. YOLOv11海洋监测实战:珊瑚礁健康评估(水下图像增强|机器人搭载)

摘要:本文针对珊瑚礁健康评估的海洋监测需求,基于YOLOv11提出解决方案,聚焦水下色偏、悬浮物干扰、珊瑚形态复杂三大难题。引用全球珊瑚礁监测网络(GCRMN)标准,采用CoralNet数据集,通过Jaffe-McGlamery物理模型引导增强与悬浮物去除算法,在浑浊水域(能见度<5m)实现87.3%的健康珊瑚识别率,藻类误判率低至7.2%。介绍了以BlueROV2水下机器人和Jetson AGX Orin为核心的部署方案,结合水下SLAM定位技术,实现珊瑚健康的实时评估与三维覆盖率计算。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1644

oracle sequrnce_Oracle Sequence创建与使用

一.Sequence简介Sequence是数据库系统按照一定的规则自动增加的数字序列,主要用于生成数据库数据记录。这个序列一般作为代理主键(因为不会重复)。Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用。Sequence是数据库系统的特性,有的数据库有S...

weixin_42471893的博客 282

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

数据库(Oracle)序列(Sequence)的基本使用

在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。

2301_79644036的博客 6745

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Oracle Sequence创建与使用

一.Sequence简介   Sequence是数据库系统按照一定的规则自动增加的数字序列,主要用于生成数据库数据记录。这个序列一般作为代理主键(因为不会重复)。 Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用。Sequence是数...

diaoyazhi2592的博客 192

oracle关于sequence的创建与删除

oracle关于sequence的创建与删除1.Sequence简介2.Sequence创建3.cache说明4.Sequence删除 1.Sequence简介 Sequence是数据库系统按照一定的规则自动增加的数字序列,主要用于生成数据库数据记录。这个序列一般作为代理主键(因为不会重复)。 Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前...

zyt150913的博客 728

Oracle、DB2、PostgreSQL之Sequence总结

    Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。    Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。      根据我个人...

Rain's Blog 187

Oracle中的Sequence

Sequence   在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按   序列号排序的地方。 编辑本段ORACLE Sequence 自增长   Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。   Sequence是数据库系统的特性,有的数据库

nonumber1989的专栏 629

Oracle sequence cache简析

在上一篇文章中简单介绍了下Oracle的sequence,这一章我们简单分析下Cache参数对sequence的作用。 简单的说,Cache 就是Oracle每次向Sequence进行请求时,分配出的独立数字数量。例如,当我们使用.nextval获取一个 独立值时,Oracle需要将sequence对象的数据字典信息更新。如果我们设置cache为10,那么第一次请求nextval的时候,

惊鸿一瞥 786

数据库中的Sequence

Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。根据我个人理解,Sequence是数据中一个特殊存放等差

kele1121的专栏 926
上一篇: Java内存溢出及解决:OutOfMemoryError 和 StackOverflowError
下一篇: SQL中EXISTS的用法
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值