序列用来自动产生唯一ID。
如果在触发器中得用序列,在插入时可以不管ID,有触发器自动执行。
如果用语句插入也行,就像 insert into table_name(id,name,...) values(seq_name.nextval,'name',..);
一般就这两种用法:
1.创建sequence
create sequence seq_name
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
可以直接在插入时调用seq_name.nextval;
如insert into table_name(proid) values(seq_name.nextval);2.创建触发器(同时要创建sequence):
create or replace trigger trg_name
before insert on table_name
for each row
begin
select seq_name.nextval into :new.proid from dual;
end;
/
如果在触发器中得用序列,在插入时可以不管ID,有触发器自动执行。
如果用语句插入也行,就像 insert into table_name(id,name,...) values(seq_name.nextval,'name',..);
一般就这两种用法:
1.创建sequence
create sequence seq_name
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
可以直接在插入时调用seq_name.nextval;
如insert into table_name(proid) values(seq_name.nextval);2.创建触发器(同时要创建sequence):
create or replace trigger trg_name
before insert on table_name
for each row
begin
select seq_name.nextval into :new.proid from dual;
end;
/
解决方案 »
- oracle怎么实现自增长,mySql能自己增长,oracle不行
- vs2010连接oracle的数据库连接类写在哪
- 如何查询初始化参数compatiable?
- 求时间最大的一条记录,帮忙看一下
- oracle 10.2.0.4 升级到11.1.0.7之前需要哪些pre步骤?
- 请问,如何用PL/SQL在两台机器上进行文件的复制?
- Oracle版升星,散分
- 一个简单的问题
- 请问同样的sql语句,在不同的oracle上为什么差别会如此之大?
- 请教sql语句一条,急急急!
- 使用imp导入数据后,如何最快地将导入数据清除??
- 使用powerdesigner9.5对ORACLE9I数据库建模时,对象上的引号问题。
MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
NOCACHE NOORDER;CREATE OR REPLACE TRIGGER USERADD
BEFORE INSERT ON MEMBERRG
FOR EACH ROW
BEGIN
SELECT LPAD(USERID.NEXTVAL,4,'0') INTO :NEW.NUM FROM DUAL;
END;
sequence.nextval用一次就增加一个步长。
他是系统中具有的!
一般在表中建立一个字段,用于存储序列产生的值来实现id(所需要的编号)的自动增长和唯一性!
一般用序列产生得值插入或更新表,如每插入一条纪录:
insert into A(id,name,..) values(sequence.nextval,'张三',..)在查询中:
select * from A where id='12'(假如)