在Oracle数据库中,没有Oracle自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。假设[表test]关键字段为id,建一个序列,代码为:
[html] - create sequence seq_test
- minvalue 1 --最小值
- maxvalue 99999999999 --最大值
- start with 1 -- 从1开始计数
- increment by 1 -- 每次加几个
- nocache --没缓存
- order;
建触发器的代码为:
[html] - create or replace trigger tri_test
- before insert on test
- for each row
- declare
- nextid number;
- begin
- IF :new.id IS NULL or :new.id=0 THEN
- select seq_test.nextval
- into nextid
- from sys.dual;
- :new.id:=nextid;
- end if;
- end tri_test;
关键字::NEW 和:OLD使用方法和意义,new 只出现在insert和update时,old只出现在update和delete时。在insert时new表示新插入的行数据,update时new 表示要替换的新数据、old表示要被更改的原来的数据行,delete时old表示要被删除的数据。Oracle数据库捕获数据变化量方法Oracle 10g的sysaux空间暴增与空间回收相关资讯 oracle数据库教程
- Oracle raw数据类型介绍 (01/29/2013 10:05:53)
- 监听器注册与ORA-12514 错误分析 (11/13/2012 14:30:08)
- Oracle SQL的cursor理解 (11/13/2012 14:16:17)
| - Oracle 如何强制刷新Buffer Cache (01/29/2013 10:02:46)
- dblink致Oracle库的SCN变成两库的 (11/13/2012 14:24:41)
- Linux操作系统下完全删除Oracle数 (11/13/2012 08:25:52)
|
本文评论 查看全部评论 (0)