Oracle自增ID实现
2016-01-21 10:19
441 查看
首先,创建一张表:
CREATE TABLE example(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25));
然后,自定义一个序列(sequence):
CREATE SEQUENCE example_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
再创建一个触发器:
CREATE TRIGGER example_triger BEFORE
INSERT ON example FOR EACH ROW WHEN (new.id is null)--只有在id为空时,启动该触发器生成id号
begin
select example_sequence.nextval into: new.id from dual;
end;
测试一下,插入数据
insert into example(name) values('张三');
insert into example(id, name) values(111,'李四');
输入查询语句:
select t.* from EXAMPLE t
结果是:
CREATE TABLE example(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25));
然后,自定义一个序列(sequence):
CREATE SEQUENCE example_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
再创建一个触发器:
CREATE TRIGGER example_triger BEFORE
INSERT ON example FOR EACH ROW WHEN (new.id is null)--只有在id为空时,启动该触发器生成id号
begin
select example_sequence.nextval into: new.id from dual;
end;
测试一下,插入数据
insert into example(name) values('张三');
insert into example(id, name) values(111,'李四');
输入查询语句:
select t.* from EXAMPLE t
结果是:
id | name |
1 | 张三 |
111 | 李四 |
相关文章推荐
- Installation Oracle11gR2 RAC---安装database
- Installation Oracle11gR2 RAC---创建ASM磁盘组
- Oracle各情况下的插入语句写法
- Installation Oracle11gR2 RAC---grid安装
- Oracle与MySQL字符串拼接
- PO 采购订单类型
- 两种方式恢复误删除的oracle文件
- oracle 事务 第二弹
- oracle 事务 第一弹
- oracle 事务 锁机制
- oracle 锁机制
- oracle redo 重做日志文件
- Oracle redo与undo 第二弹
- oracle如何保证读一致性 第二弹
- oracle数据库开启的时候 是先开监听还是先开主服务,关数据库的时候呢???
- oracle 10g 安装时字符集的选择,和后边的修改
- Oracle redo与undo 第一弹
- 简单说明Oracle数据库中对死锁的查询及解决方法
- Oracle数据表中的死锁情况解决方法
- 讲解Oracle数据库中结束死锁进程的一般方法