Oracle的id自增长的两种方式
来源:互联网 发布:什么叫自动编程 编辑:程序博客网 时间:2024/05/21 10:23
方式一:
利用序列产生主键值。
序列(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 李四
http://www.jb51.net/article/50415.htm
http://www.cnblogs.com/dlts26/archive/2012/05/22/2513563.html
阅读全文
0 0
- Oracle的id自增长的两种方式
- Hibernate在oracle中ID增长的两种方式
- Hibernate在oracle中ID增长的两种方式
- Hibernate在oracle中ID增长的两种方式
- Oracle ID自增长的设置
- Oracle实现主键自增长的几种方式
- mybatis基于annotation的方式取得自增长ID值
- Oracle ID自增长
- oracle ID自增长
- oracle id 自增长
- oracle id 自增长
- Oracle—SQL Server创建ID自增长的表
- mybaties+oracle:插入数据,返回自增长的id
- oracle中的ID号实现自增长的方法(序列)
- oracle中的ID号实现自增长的方法
- Oracle 的 自增长
- Oracle数据库中,两种方式实现ID自增
- Oracle两种方式创建自增ID
- 一些VS快捷键
- mysql explain用法和结果的含义
- Oracle和DB2转换的部分区别
- docker跨主机容器访问(网桥实现)
- Java中加载Groovy文件及调用其方法
- Oracle的id自增长的两种方式
- JS中popup.js
- POJ
- document.selection.createRange方法----获取选择对象文本
- Hibernate4教程七:实战-概念整理
- mySQL中索引index详解
- 在CentOS上部署OpenStack(一)
- 如何快速掌握一门新技术/语言/框架
- Java中获取request对象的几种方法