1. 程式人生 > >在oracle中創建自動增長字段

在oracle中創建自動增長字段

lac 創建表 測試 nocache ide char emp tab 技術分享

參考http://www.cnblogs.com/jerrmy/archive/2013/03/13/2958352.html

oracle在創建表時和其他的數據庫有點不一樣,如SQL SERVER可以在int類型的字段後加上identity(1,1),該字段就會從1開始,按照+1的方式自增,將這個字段設置為主鍵,有利於我們進行數據的插入操作。MySql中可以使用“auto_increment”即可。但是oracle有點麻煩,需要使用序列和觸發器達到目的。

首先我們創建一個員工表。 create table employee(

Id int ,
DeptNo number,
EmpNo number,
Ename varchar2(16),
Job varchar2(32),
Sal float,
HireDate date,
constraint pk_employee primary key(EmpNo)
);

第二,創建員工表自動增長序列 create sequence employ_autoinc

minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;

第三,創建觸發器將序列中的值賦給插入employee表的行 create or replace trigger Identity1
before insert on test--表名
for each row
begin
select employ_autoinc.nextval into :new.nId from dual;
end; 最後測試一下我們的成果 insert into employee(DeptNo,EmpNo,Ename,job,sal,hiredate) values(520,5201002,‘James zhou‘,‘PD‘,6000,to_date(‘2012-10-22‘,‘yyyy-mm-dd‘)); select * from employee; 技術分享

在oracle中創建自動增長字段