1. 程式人生 > >更新oracle資料庫表如何實現主鍵自增長

更新oracle資料庫表如何實現主鍵自增長



       在資料庫中實現主鍵自動增長有利於我們做資料插入操作,在SQL SERVER上建立表時可以在int型別的欄位後加上identity1,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