博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle的id自增长的两种方式
阅读量:6080 次
发布时间:2019-06-20

本文共 1279 字,大约阅读时间需要 4 分钟。

  hot3.png

方式一:

利用序列产生主键值。 

序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。

--创建sequence create sequence seq_on_test increment by 1 start with 1 nomaxvalue nocycle nocache; --建表 drop table test; create table test( ID integer ,stu_name nvarchar2(4) ,stu_age number ); --插入数据 insert into test values(seq_on_test.nextval,'Mary',15); insert into test values(seq_on_test.nextval,'Tom',16); select * from test; --结果 /* 1 Mary 15 2 Tom 16 */ --seq的两个方法 select seq_on_test.currval from dual; select seq_on_test.nextval from dual; --结果 /* 2 3 */

 

方式二: 

自定义一个序列(sequence),然后创建触发器;

例:首先,创建一张表:

CREATE TABLE example(ID Number(4) NOT NULL PRIMARY KEY,NAME VARCHAR(25));

然后,自定义一个序列(sequence):

CREATE SEQUENCE example_sequenceINCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOMAXVALUE -- 不设置最大值NOCYCLE -- 一直累加,不循环NOCACHE -- 不建缓冲区

再创建一个触发器:

CREATE TRIGGER example_triger BEFOREINSERT ON example FOR EACH ROW WHEN (new.id is null)--只有在id为空时,启动该触发器生成id号beginselect example_sequence.nextval into: new.id from dual;end;

 测试插入数据:

insert into example(name) values('张三');insert into example(id, name) values(111,'李四');

查询表的结果是:

id name
1 张三
111 李四

 

转载于:https://my.oschina.net/itommy/blog/844276

你可能感兴趣的文章
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>