oracle自增的两种办法,ORACLE数据库实现自增的两种方式

Mysql数据库因为其有自动+1,故一般我们不需要花费太多时间,直接用关键字auto_increment即可,但是Oracle不行,它没有自动增长机制。顾我们需要自己去实现。一般有两种方式,但是这两种方式都与序列化有关。第一种方式:序列化+触发器;第二种方式:序列化+显示调用序列化。一般我选用第一种方式。因为我们只要建立好序列化+触发器,这样我们就需要太多的去关注这个字段了,触发器会在我们插入数据时自动触发,帮助我们进行+1操作。这正好解决了我最近做的一个mini项目中的部门删除操作(子部门与父部门),因为我们知道父部门总是先于子部门存在于数据库中,如果我们额外建一个字段去记录插入数据的先后顺序,这样我们在做删除时,只要让子部门先于父部门删除,这样就不会存在因为批量删除部门,因删除父部门递归删除子部门,再删子部门时发现没有子部门的存在了而报异常。好了案例说完了。现在来在oracle数据库中具体实现自增1的操作。

准备工作建表:

//准备工作创建一张表

create table dept_p(

dept_id VARCHAR2(40) not null,

dept_name VARCHAR2(40),

parent_id VARCHAR2(40),

state NUMBER(11),

dept_sort NUMBER(11)

);

alter table DEPT_P add [constraint dept_id] primary key(dept_id);

方式一:序列化+触发器

第一步:创建序列sequence

create sequence seq_t_dept

minvalue 1

maxvalue 99999999

start with 1

increment by 1

cache 50

第二步:建立触发器

create or replace trigger "dept_trig"

before insert on dept_p

referencing old as old new as new for each row

declare

begin

select seq_t_dept.nextval into :new.dept_sort from dual;

end dept_trig;

第三步:插入数据测试看dept_sort是否自增

insert into dept_p values('001', '安保部', '000', 1);

select * from dept_p;

方式二:序列化+显示调用

第一步:创建序列sequence

//创建sequence

create sequence seq_on_dept

increment by 1

start with 1

nomaxvalue

nocycle

nocache;

第二步:显示调用序列

insert into dept_p values('001', '安保部', '000', 1, seq_on_test.nextval);

第三步:查询进行查看

select * from dept_p

注:

//查看序列当前值和下一个值的查看方式

select seq_on_dept.currval from dual;

select seq_on_dept.nextval from dual;

总结:

create sequence 序列名

[increment by n]

[start with n]

[{maxvalue/minvalue n | nomaxvalue}]

[{cycle|nocycle}]

[{cache n | nocache}];

标签:自增,seq,sequence,数据库,dept,部门,ORACLE,序列化,select

来源: https://www.cnblogs.com/lgx5/p/11508649.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能时代:互联网推动制造业升级的四大方向

来源: 腾讯研究院 概要:事实上制造业的问题,这几年已经成为全球性话题引起越来越多国家的重视。其中以美国和德国为代表,较早意识到这场由互联网点燃的数字化革命的意义,不仅在于消费市场,更应该为国家的经…

linux内核启动流程x86,linux内核-x86_32位内核启动流程

arch/x86/boot/header.S执行_start,第274行:.global _start_start:然后跳转执行start_of_setup,准备实模式建立堆栈,BSS段清0,为下步C语言执行建立环境。start_of_setup:然后跳转到C代码执行main:# Jump to…

全球 35 大开源公司都在这里!

来源:全球人工智能 概要:如果你认为开源软件主要是业余爱好者和单枪匹马的开发人员的杰作,那你的看法完全落伍了。虽然独立开发人员仍是开源社区的重要组成部分,但如今开源项目的大部分工作由企业开发人员完成。 这些公司在开发和…

linux 进程 命令 cat,Linux cat命令详解

cat主要有三大功能:1.一次显示整个文件:cat filename2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件:cat file1 file2 > file常用的命令展示特殊用法:增加多行内容,EOF必须成对出现…

谷歌大脑最新研究:不用「训练」!高斯过程「超越」随机梯度下降

来源:雷克世界 编译:嗯~阿童木呀、多啦A亮 概要:近年来,深度神经网络作为一种灵活的参数模型,以能够适应复杂的数据模式而著称。 可以这样说,一个具有独立同分布(independent identically distr…

linux多进程优先级,Linux多线程之优先级

1、多线程的作用: 即什么情况考虑使用多线程?2、多线程的创建: 默认参数创建即可!pthread_create(&tid,NULL,(void *)thread_func,NULL);3、多线程的同步: 掌握互斥&#xff…

Facebook最新对抗学习研究:无需「平行语料库」完成「无监督」机器翻译

来源:雷克世界 编译:嗯~阿童木呀、多啦A亮 概要:得益于最近在深度学习方面取得的进展以及大规模平行语料库的可用性,现如今,机器翻译已经在多个语言对上取得了令人印象深刻的表现。 相信大家都知道,最近在机…

linux的软件很大,linux软件raid10,机器相同,结果差异很大

我在两台相同的机器上拥有完全不同的软件raid10性能和行为.我有两台硬件相同的机器,同时购买,具有相同的软件版本,硬件版本和固件版本.每个都有一个带有8 x 6 Gb / s通道的SAS控制器连接到SAS机箱,该机箱可容纳12个SAS磁盘.在机器1上,它是稳定的并且似乎工作正常,raid阵列中的每…

结合脑成像技术与人工智能,破除自杀的“诅咒”

来源:36氪 概要:近日发表的一项研究,介绍了一种通过人工智能与脑成像技术结合的方法来预测自杀倾向的方法。在初步的试验中,准确率达到了91%。 自杀已经成为了一个公共健康领域的“诅咒”,正在夺取越来越多的生命。在很…

Linux软件安装部署文档,MetaQ安装部署文档

一.MetaQ安装部署情况:地点IPBroker IDMaster/SlaveSlave ID:Group合肥192.168.52.231Slave1:meta-slave-group-hf北京192.168.51.331Master/广州192.168.70.1571Slave2:meta-slave-group-gz二.MetaQ安装1. 前提已有安装了ZooKeeper的机器&am…

美媒:中关村取代硅谷获评全球最大科技中心

来源:澎湃 概要:北京被评为2017年度全球最大科技城市第一名,中关村已取代硅谷成为全球最大的科技中心。 美媒称,一份最新报告显示,北京被评为2017年度全球最大科技城市第一名,中关村已取代硅谷成为全球最大…

linux 和服务通讯,Android 的Activity和Service之间的通信

在Android中Activity负责前台界面展示,service负责后台的需要长期运行的任务。Activity和Service之间的通信主要由IBinder负责。在需要和Service通信的Activity中实现ServiceConnection接口,并且实现其中的onServiceConnected和onServiceDisconnected方法…

【MLA首日报告摘要】周志华、马毅等教授分享机器学习最新进展

来源:专知 概要:第15届中国机器学习及其应用研讨会今天11月4日在北京交通大学举行,海内外从事机器学习及相关领域研究的10余位专家与会进行学术交流。 第15届中国机器学习及其应用研讨会今天11月4日在北京交通大学举行,海内外从事…

linux汇编字符长怎么看,linux – 在内联GNU汇编程序中获取字符串长...

使用GCC的内联asm来学习汇编的问题在于你花了一半的时间来学习gcc的内联汇编是如何工作的,而不是实际学习汇编.例如,这是我如何编写相同的代码:#include int getStringLength(const char *pStr){int len;__asm__ ("repne scasb""not %%ecx"&quo…

埃森哲5G智慧城市报告:美国GDP将狂增5千亿

来源:智东西 概要:第五代通信技术将不仅仅带来网速的提高(eMBB),更意味着可靠的低延时(uRLLC)海量物联网(mMTC)。 5G被认为是万物互联的开始。第五代通信技术将不仅仅带来…

linux 信号发生器,用STM32实现函数信号发生器

自己慢慢看,,,,[mw_shl_codec,true]#ifndef __BSP_WAVEMAKER_H#define __BSP_WAVEMAKER_H#include "stm32f10x.h"#define DAC_DHR12RD_Address 0x40007420#define DAC_DHR8R1_Address 0x40007410#define DAC_DHR12R1_Ad…

星际旅行、返老还童…1.3万字看完今年的WE大会,简直就是一部科幻电影

来源:腾讯科技 概要:在第五届WE大会上,科学家们的“脑洞”更大了:星际旅行、返老还童等一个个过去科幻电影里的镜头出现了。 11月5日,WE大会在老时间、老地点如约而至。 时光飞速,WE大会如今已经是第五届了…

gdp笔记本 linux,linux中如何使用微软鼠标的第4、5键

虽说使用的人大都对微软没什么好感,但不能否认微软确实也出了不少好东西呀,比如微软鼠标(IE系列) icon_smile.gif IE2.0和以上版本都有5个按钮,除了正常的左中右外,两侧还各有一个,在windows中可用来支持浏览器的前进/…

智能优化算法应用:基于战争策略算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于战争策略算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于战争策略算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.战争策略算法4.实验参数设定5.算法结果6.…

从芯片巨头沦落到收购对象 高通是怎样失去魔力的?

来源:凤凰科技 概要:过去5年,高通股价几乎是原地踏步,而其他科技公司的股价却一直在快速上涨。 据《福布斯》北京时间11月6日报道,在华尔街,高通已经失去昔日魔力。过去5年,高通股价几乎是原地踏…