码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 创建自增列

时间:2015-11-19 10:48:50      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

类似SqlServer中的标识列   identity,Oracle实现同样的效果有点小复杂额,如下:

 1 --1.创建表
 2 create table Student(
 3        ID integer not null primary key,
 4        Name varchar2(40) not null,
 5        Sex integer,
 6        Address varchar2(100)
 7 )      
 8 tablespace MyTest_Data;--指明表空间
 9 
10 --2.创建序列
11 create sequence SEQ_StuID    
12 minvalue 1                   
13 start with 1                 
14 increment by 1               
15 nomaxvalue                   
16 nocache;                     
17 
18 --3.创建触发器
19 create OR REPLACE TRIGGER Trigger_StuID 
20    BEFORE insert
21    ON Student 
22    FOR EACH ROW
23 BEGIN
24      if inserting then                                          
25        if :NEW."ID" is null then                                
26           select SEQ_StuID.nextval into :NEW."ID" from dual; 
27        end if;                                                  
28     end if;         
29 END;
30 
31 --4.激活触发器
32 alter table "admin"."Student" --用户.表名
33 enable all triggers;
34 
35 --5.插入数据
36 insert into Student(NAME,SEX,ADDRESS) values(张三,1,第七街区);
37 
38 --可以使用【序列名.newxtval】查看下一个要使用的序列号
39 --注意:以下语句执行一次会按指定的增量增加
40 select SEQ_StuID.nextval from dual

 

Oracle 创建自增列

标签:

原文地址:http://www.cnblogs.com/hzz521/p/4976663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!