oracle自動增長

2021-08-27 23:29:18 字數 1114 閱讀 4964

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 tirgger insert_employee_autoinc

before insert  on employee

for each row

begin

select employ_autoinc.nextval into :new.id from dual;

end insert_employee_autoinc

最後測試一下我們的成果

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主鍵自動增長

oracle主鍵自動增長 這幾天搞oracle,想讓表的主鍵實現自動增長,查網路實現如下 create table simon example id number 4 not null primary key,name varchar2 25 建立序列 create sequence create ...

ORACLE的自動增長列

關於oracle自動增長列 sqlserver2000有自動增長 create sequence seq tab g increment by 1 start with 1 maxvalue 9999999 minvalue 1 建立序列 seq tab g.currval 指當前序列 seq ta...

oracle實現自動增長列

2008 01 31 15 53 sequence 首先使用者要有create sequence或者create any sequence許可權.然後使用下面命令生成sequence物件 create sequence emp sequence increment by 1 每次加幾個 start ...