oracle中产生固定格式的自增长序列

Oracle给字段id设置固定格式并且有自增效果(例如:XK2018040001(字符+日期+序列值)),构思:拼接 id自增这一性质采用序列自增:create sequence test_id_seq       increment by 1       start with 1       minvalue   1       maxvalue  9999       cycle         nocache这里设置了序列循环,到后期可能会出现id重复,建议设置最大值大点,由于本次研究的是设计id固定格式自... 阅读详情

</pre><span style="font-family:SimSun">写代码的时候经常遇到需要表格中的ID自增长,同时有些客户可能需要一些特定的格式;比如:  K0001、K0002;更有甚者 需要 k+年份+00001 ,例如: K201500001、K201500002;等等。需要怎么做呢:</span><p></p><p><strong><span style="font-family:SimSun; font-size:18px">其实很简单,首先像以前一样,建一个sequence </span></strong></p><p><strong><span style="font-family:SimSun; font-size:18px"></span></strong></p><pre name="code" class="sql" style="font-weight: bold;">create or replace sequence test_seq 
minvalue 1 
maxvalue 99999 
start with 1 
increment by 1 
nocache;

然后建立一个触发器

<pre name="code" class="sql">create or replace trigger test_tg 
before insert on test----test是表名
for each row 
declare  
begin select  test_seq.nextval into: new.id (-----这个id字段是test表中需要自增长的字段) from dual;
end trigger test_tg ;


如果按照上述描述,我们已经完成了一般的自增长序列

但是因为客户的不同需求,所以我们进行了一些修改,比如需要K00001、K00002;

第一步一样建立一个序列,然后触发器是这样写的

<pre name="code" class="sql">create or replace trigger test_tg 
before insert on test----test是表名
for each row
declare
begin 
select  'K' || lpad(test_seq.nextval into,5,'0'): new.id (-----这个id字段是test表中需要自增长的字段) 
from dual;
end trigger test_tg ;  



完成;

如果是需要 K+年份+00001,比如 K201500001、K201500002,

第一步还是一样,然后在触发器中的写法

<pre name="code" class="sql">create or replace trigger test_tg 
before insert on test----test是表名
for each row
declare
begin 
select  'K' ||to_char(sysdate,'yyyy')|| lpad(test_seq.nextval into,5,'0'): new.id (-----这个id字段是test表中需要自增长的字段)
from dual;
end trigger test_tg ; 




完成,希望能帮助一些初学者。


oracle之表中指定字段自增 表里指定字段自增,这个问题在SQLSERVER里面来说很简单  ,Identity(1,1)该字段就会从1开始,按照+1的方式自增. 但是在Oracle里面呢,就需要用到序列和触发器完成才可以。    相信这个问题每一个转Oracle型数据库时都会遇到。   所以我在此写一篇博客,不求闻达于诸侯,只希望大家也和我一样愿意把自己遇到的问题写到博客上,来帮助每一位IT行业的同伴。 首先数据表名:... 阅读详情

相关推荐

ORACLE实现自定义序列号生成

实际工作中,难免会遇到序列号生成问题,下面是一个简单的序列号生成函数   (1)创建自定义序列号配置表如下: –自定义序列 create table S_AUTOCODE ( pk1           VARCHAR2(32) primary key, atype         VARCHAR2(20) not null, owner         VARCHAR2(10) not null, initcycle     CHAR(1) not null, cur_sernum    VARCHAR2(50) not null, zero_flg      VARCH

oracle 编号递增,oracle 创建字段自增长实现方式

mysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,我们有以下两种方式可以解决字段自增长的功能。因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式。CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/ MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCL...

weixin_35964207的博客 1152

基于 AUTOSAR 的域控产品软件开发进阶探索

本文深入探讨了AUTOSAR架构在汽车域控产品开发中的进阶应用。首先从系统设计角度分析了AUTOSAR分层架构原理及其在域控产品中的优化部署策略;其次详细介绍了Davinci和EBTresos等主流工具链的特点与协同使用方法;然后重点阐述了ASPICE流程与功能安全/信息安全标准的实施要点;最后分享了多核车载芯片(如NXP S32G)的适配经验与优化实践。通过架构设计、工具运用、标准遵循和芯片适配四个维度的专业解析,为域控产品的AUTOSAR开发提供了系统性指导。

SiArch的博客 1201

oracle forms 添加序号列(固定序号列)

oracle forms 添加序号列(固定序号列) 无论怎么排序 总是从1,2,3,4序号. 效果如图: 操作步骤: 1.添加一个新的项. 2.在块上建立一个触发器POST-CHANGE 语句: :block_name.item_name := Get_Block_Property('block_name',current_record); 这样就可以了...

com_zyq的专栏 537

动态表单设计

自定一表单数据结构。内容展示如有必要行转列。前端根据题目类型自定义组件后端跟俊题目类型用策略模式校验各种类型这样有统计功能的简单动态问卷就可以了展示时可能某些场景需要行转列。大概估摸使用的话有可能kmic_form_data_detail表的记录数比较大,后期再考虑数据或者表迁移或拆分。

zquwei的博客 3473

VisualStudio2022启动报错

把Users\...\AppData\Local\Microsoft\VisualStudio\11.0\ComponentModelCache中的Microsoft.VisualStudio.Default.cache这个文件移除,再重启vs,各项功能都能正常使用了。第一次使用方法1有效果,不知道什么原因后面又报错再删除缓存文件无效了,最后使用方法2启动VS成功。vs2022启动时,报错弹框,在ActivityLog查看具体报错信息,报错原因未知。网上搜索到两种解决方法。方法1:删除缓存文件。

面朝大海,春暖花开 3953

Oracle 如何定自增长数字列

在Oracle数据库中,自增长数字列并不是直接支持的特性,但你可以通过序列(Sequence)和触发器(Trigger)或者设置默认值的方式来实现类似的功能。现在,当你向table_name表中插入新记录时,无论是否指定了id列的值,触发器都会确保它有一个由my_sequence生成的自增长值。现在,当你向table_name表中插入新记录时,如果不为id列指定值,它将自动使用my_sequence生成的下一个值作为默认值。使用触发器可以确保在插入数据时始终有自增长的效果,但这也增加了数据库的复杂性。

codemami的博客 2083

非球面检测

摘要:非球面镜检测主要采用干涉法,包括零位补偿和非零位补偿两种方式。零位补偿通过透镜组完全校正像差,精度达1%波长,但设计复杂成本高;非零位补偿利用部分像差补偿降低波前斜率,适用于规则非球面。折射-衍射混合补偿镜能同时校正多种像差。实际检测中可采用物理补偿镜或动态CGH加载方案,光路设计需运用坐标断点和多重结构技术实现复杂光路建模。不同方法各具优势,需根据检测需求选择合适方案。

Zhaxibamao的博客 2114

oracle中序号生成器,Oracle序列生成器

在实际开发中,设计数据表的时候会把某些字段定义成一个自动增长的、唯一的流水号,例如记录编号、日志编号等,MySQL和SQL Server采用的是自增字段,Oracle和PostgreSQL采用了更灵活的序列生成器。在本文中,把序列生成器简称为序列。一、创建序列创建序列的语法如下:createsequence序列名[minvaluen][maxvaluen][incrementbyn][...

weixin_29348211的博客 1495

泛微OA与金蝶云星空审批流程对接实战:从报销单到采购合同的完整指南

本文详细介绍了泛微OA与金蝶云星空审批流程的深度集成方案,涵盖从报销单到采购合同的完整对接指南。通过API层面的无缝连接,实现流程自动化、数据同源和权限联动,显著提升企业业务效率。文章还提供了环境配置、数据映射、接口安全等实用技巧,助力企业轻松完成系统对接。

weixin_29268637的博客 246

SwiftUI 5 教程之 SwiftData使用入门(教程含源码)

对我来说,记住日期很难。是的,您可以设置该日期的提醒,但该提醒无法产生紧迫感。让我们创建一个应用程序,我们可以在其中添加将来发生的事件。如果我们可以在主应用程序上看到所有即将发生的活动,那就太好了。也许将它们添加到小部件上以营造紧迫感。对于任何事件,我们需要跟踪哪些事情?我们将在下一篇文章中添加更多属性,其中我们将讨论迁移。现在,这就是我们所需要的。开始吧。

iCloudEnd的博客 987

oracle快速生成序列号,Oracle实现自定义序列号生成

实际工作中,难免会遇到序列号生成问题,下面就是一个简单的序列号生成函数(1)创建自定义序列号配置表如下:--自定义序列create table S_AUTOCODE(pk1 VARCHAR2(32) primary key,atype VARCHAR2(20) not null,owner VARCHAR2(10) not null,initcycle...

weixin_42514777的博客 4627

【TCN回归预测】TCN时间卷积神经网络数据回归预测(多输入单输出)【含Matlab源码 2317期】

TCN时间卷积神经网络数据回归预测 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 823

oracle创建顺序号,Oracle实现自定义序列号生成

实际工作中,难免会遇到序列号生成问题,下面就是一个简单的序列号生成函数(1)创建自定义序列号配置表如下:--自定义序列create table S_AUTOCODE(pk1 VARCHAR2(32) primary key,atype VARCHAR2(20) not null,owner VARCHAR2(10) not null,initcy...

weixin_33623088的博客 1150

【Oracle】Oracle rman工具使用(真的细)

Oracle RMAN(Recovery Manager)是Oracle数据库备份和恢复的官方工具,它提供的备份和恢复功能非常强大和可靠。RMAN可以备份整个数据库或特定表空间、数据文件、控制文件和归档日志,同时还可以进行增量备份和增量恢复。RMAN还提供了诸如备份验证、备份优化、备份复制、备份集管理、恢复操作、自动备份、自动恢复等高级功能。它使用的备份和恢复格式是Oracle通用的备份集(Backup Set),这使得备份和恢复非常灵活和高效。

tttzzzqqq2018的博客 8505

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Oracle 序列的使用与说明

1、序列的创建与说明 创建序列,Oracle序列的语法格式为: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; 1)INCREMENT BY用于定义序列的步长,如果省略,则默认

不畏惧被人讨厌而是勇往直前,不随波逐流而是激流勇进,这才是对人而言的自由。 4587

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Oracle 自动生成标识列, 比如订单编号,学生ID

Oracle 自动生成标识列, 比如订单编号,学生ID

awenli的专栏 3192

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

oracle自增长序列

例1:创建序列: CREATE SEQUENCE ABC INCREMENT BY 1 START WITH 1 MAXVALUE 9999999999 NOCYCLE NOCACHE; 语法详解 CREATE SEQUENCE 序列名 [INCREMENT BY n] --1、 [START WITH n] --2、 [{MAXVALUE/MINVALUE n|NOMAXVALUE}] --

lwwgtm的专栏 6456

easyui自定义扩展,序号列宽度

easyui的datagrid,当数据量过大时(接近万条),序号列会变得无法显示全序号,可以自定义扩展方法,动态调整序号列的宽度, 方法如下,在加载成功时调用,onLoadSuccess:fixRownumber  $.extend($.fn.datagrid.methods, { fixRownumber : function (jq) { return jq

飞天灵狐 2637

自定义easyui-datagid的表格数据序列号

一、使用datagrid时有时需要显示行号,虽然rownumbers="true"属性可以设置,但是当表格有横向滚动条时,就和序列号不协调了,所以需要自定义,解决如下: columns: [[ {field:'index',title:'序号',width:38, align: 'center',formatter:function(val,row,index){ var ...

liubowin的专栏 1万+

oracle生成编号(首字母+YYYY-DD-MM+4位序号)自动增长,4位序号达到9999,在从1001开始。

oracle生成编号(首字母+YYYY-DD-MM+4位序号)自动增长,这样序列号到达最大值9999的时候又会从1001开始。

junbogao的博客 3000

Oracle表序列生成

在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开

weisg81的专栏 2271

Oracle:序列 SEQUENCE 创建语法与使用

序列是oracle数据库对象一种。多个用户可以通过序列生成连续的数字以此来实现主键字段的自动、唯一增长,并且一个序列可为多列、多表同时使用。序列消除了串行化并且提高了应用程序一致性。   创建序列:需要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限 CREATE SEQUENCE 语法: CREATE SEQUENCE [ schema. ]

s_xiaoqi的博客 2627
上一篇: Spring mvc中前台表单自动绑定实体类(不用注释)
下一篇: Spring MVC中ajax返回json数据
阿尔卑斯0283
博客等级 码龄14年 51粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值