博客分类: DB-oracle sqlOracle 1、方式一:使用序列和触发器 Sql代码 收藏代码 SQL> CREATE SEQUENCE te

前端之家收集整理的这篇文章主要介绍了博客分类: DB-oracle sqlOracle 1、方式一:使用序列和触发器 Sql代码 收藏代码 SQL> CREATE SEQUENCE te前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1、方式一:使用序列和触发器

  1. sql>CREATESEQUENCEtest_sequence2
  2. 2incrementby1--每次递增1
  3. 3startwith1--从1开始
  4. 4nomaxvalue--没有最大值
  5. 5minvalue1--最小值=1
  6. 6NOCYCLE;--不循环
  7. Sequencecreated.
  8. sql>CREATETABLEtest_create_tab2(
  9. 2idINT,
  10. 3valVARCHAR(10),
  11. 4PRIMARYKEY(id)
  12. 5);
  13. Tablecreated.
  14. sql>CREATEORREPLACETRIGGERBeforeTestCreate2Insert
  15. 2BEFOREINSERTONtest_create_tab2
  16. 3FOREACHROW
  17. 4BEGIN
  18. 5SELECTtest_sequence2.nextvalINTO:new.idFROMdual;
  19. 6END;
  20. 7/
  21. Triggercreated.
  22. sql>INSERTINTOtest_create_tab2(val)VALUES('NOid');
  23. 1rowcreated.
  24. sql>INSERTINTOtest_create_tab2(id,val)VALUES(1,'idnouse');
  25. 1rowcreated.
  26. sql>SELECT*FROMtest_create_tab2;
  27. IDVAL
  28. ------------------------------
  29. 1NOid
  30. 2idnouse

2、方式二:仅使用序列
  1. [TEST1@orcl#27-12月-10]sql>createtabley_one(idnumber);
  2. 表已创建。
  3. [TEST1@orcl#27-12月-10]sql>createsequencey_seqstartwith1incrementby1nomaxvaluenocycle
  4. 2;
  5. 序列已创建。
  6. [TEST1@orcl#27-12月-10]sql>insertintoy_onevalues(y_seq.nextval);
  7. 已创建1行。
  8. [TEST1@orcl#27-12月-10]sql>insertintoy_onevalues(y_seq.nextval);
  9. 已创建1行。
  10. [TEST1@orcl#27-12月-10]sql>insertintoy_onevalues(y_seq.nextval);
  11. 已创建1行。
  12. [TEST1@orcl#27-12月-10]sql>commit;
  13. 提交完成。
  14. [TEST1@orcl#27-12月-10]sql>select*fromy_one;
  15. ID
  16. ----------
  17. 1
  18. 2
  19. 3

1、创建表

create table note(  
id number(20) NOT NULL primary key,/*主键,自动增加*/                 name varchar2(20)); 

2、创建自动增长序列

 Create Sequence addAuto_Sequence 
 Increment by 1     -- 每次加几个 
 start with 1       -- 从1开始计数     
 nomaxvalue         -- 不设置最大值,设置最大值:maxvalue 9999  
 nocycle            -- 一直累加,不循环    
 cache 10;  

3、创建触发器

 Create trigger addAuto before 
 insert on note(表名) for each row /*对每一行都检测是否触发*/
 begin
 select addAuto_Sequence.nextval into:New.id from dual;
 end;      
4、提交 commit;

5、测试 insert into note(name) values(‘lisi’);

猜你在找的Oracle相关文章