更新oracle数据库表如何实现主键自增长



       在数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键。MySql中可以使用“auto_increment”即可。而oralce实现该效果需要使用序列配合触发器使用。

 

      下面是一个具体实例:

 

      1.创建数据库表:

create table employee
(
  EID      INTEGER,
  NAME     varchar2(10),
  SURNAME  varchar2(10),
  GENDER   varchar2(10),
  STATE    varchar2(10),
  BIRTHDAY date,
  HIREDATE date,
  DEPT     varchar2(10),
  SQLARY   INTEGER
)
;

      2.创建序列:

create sequence EID_AUTOINC
minvalue 1
maxvalue 9999
start with 57
increment by 1
nocache;

      3.创建触发器:

CREATE OR REPLACE TRIGGER employee_EID --触发器名称
  BEFORE INSERT ON employee    --EMPLOYEE是表名
  FOR EACH ROW
DECLARE
   NEXTID NUMBER;
BEGIN
  IF :NEW.EID IS NULL OR :NEW.EID=0 THEN --EID是列名
    SELECT EID_AUTOINC.nextval --EID_AUTOINC是刚才创建的序列
    INTO NEXTID
    FROM DUAL;
     :NEW.EID:=NEXTID;
  END IF;
END employee_EID;

      4.插入数据测试:

insert into employee
  ( name, surname, gender, state, birthday, hiredate, dept, sqlary)
values
  ( 'm', 'f', 'f', 'QQHE', to_date('1986-08-01','yyyy-mm-dd'), to_date('2010/08/24','yyyy-mm-dd'), 'C-center', '3500');

      5.查询验证:

select * from employee

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/shiGuangShiYi/p/10117563.html