在oracle中建立自動增長字段

2021-07-16 21:37:39 字數 2211 閱讀 5242

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在建立表時和其他的資料庫有點不一樣,如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在建立表時和其他的資料庫有點不一樣,mysql中可以使用 auto increment 即可。但是oracle有點麻煩,需要使用序列和觸發器達到目的。具體步驟如下 一 建立資料表 create table employee id int deptno number,empno numbe...

oracle建立自動增長字段

oracle資料庫與其他的資料庫不太一樣,比如在mysql裡自動增長只要設定 auto increment 即可。可是在oracle裡就麻煩了。本文就說說在oracle裡建立自動增長的字段。sql create table createtableuserinfo id number not null...

oracle建立自動增長字段

oracle資料庫與其他的資料庫不太一樣,比如在mysql裡自動增長只要設定 auto increment 即可。可是在oracle裡就麻煩了。本文就說說在oracle裡建立自動增長的字段。create table create table userinfo id number not null u...