创建序列 --- create sequence SEQ_TEMP_ID minvalue 1 maxvalue 10000000000 start with 1 increment by 1 cache 20; --- 查找改序列下一个值 select SEQ_TEMP_ID.NEXTVAL from dual ----创建触发器 create or replace trigger add_Trigger before insert on kevin_test_1 for each row declare -- local variables here newvalue number; begin select SEQ_TEMP_ID.nextval into newvalue from dual; :new.personid:=newvalue; end add_Trigger;//这个触发器的值和主键那些你就自己替换了嘛
create sequence seqname.. 创建序列具体语法和参数你可以搜下用行级before触发器 create or replace trigger TGNAME before insert on TABLENAME for each row begin :new.ID:=SEQNAME.nextval; --或者9i之前用 select SEQNAME.nextval into :new.ID from dual; end TGNAMW;
create sequence 序列名insert into xxx values(....,序列名.nextval)
创建序列后,每次新增时用 序列名.nextval 就可以自增了
一:创建一个序列实现递增create sequence sequence_name start with 1 --设定起始值 increment by 1 --设定递增值 maxvalue 999999999 --设定最大值 二:创建一个触发器,引用序列的值,为了确保只能插入或者删除而不能修改,要考虑两种情况create or replace trigger trigger_name before insert or update on table_name for each row begin if inserting then select sequence_name.nextval into :new.column_name; end if; if updating('column_name') then raise_application_error('-20001','不能修改 column_name 列的值!'); end if; end; 说明: table_name 就是你要操作的表名 column_name 就是你要递增的那个字段
---
create sequence SEQ_TEMP_ID
minvalue 1
maxvalue 10000000000
start with 1
increment by 1
cache 20;
--- 查找改序列下一个值
select SEQ_TEMP_ID.NEXTVAL from dual
----创建触发器
create or replace trigger add_Trigger
before insert on kevin_test_1
for each row
declare
-- local variables here
newvalue number;
begin
select SEQ_TEMP_ID.nextval into newvalue from dual;
:new.personid:=newvalue;
end add_Trigger;//这个触发器的值和主键那些你就自己替换了嘛
创建序列具体语法和参数你可以搜下用行级before触发器
create or replace trigger TGNAME
before insert on TABLENAME
for each row
begin
:new.ID:=SEQNAME.nextval;
--或者9i之前用 select SEQNAME.nextval into :new.ID from dual;
end TGNAMW;
序列名.nextval 就可以自增了
start with 1 --设定起始值
increment by 1 --设定递增值
maxvalue 999999999 --设定最大值
二:创建一个触发器,引用序列的值,为了确保只能插入或者删除而不能修改,要考虑两种情况create or replace trigger trigger_name
before insert or update on table_name
for each row
begin
if inserting then
select sequence_name.nextval into :new.column_name;
end if;
if updating('column_name') then
raise_application_error('-20001','不能修改 column_name 列的值!');
end if;
end;
说明:
table_name 就是你要操作的表名
column_name 就是你要递增的那个字段