1. 程式人生 > 其它 >Oracle自增主鍵

Oracle自增主鍵

mysql中自增主鍵:create table test(id primary keyAUTO_INCREMENT) AUTO_INCREMENT=值;

Oracle中沒有這種寫法,Oracle中自增主鍵,需要靠序列和觸發器實現

例:

drop table account_la;
create table account_la(
  customer_id integer,--主鍵
  customer_name varchar2(20) not null, --客戶名
  customer_id_card varchar2(20) not null, --客戶身份證號
  customer_sex char
(4) default'' not null,--客戶性別 customer_phone number(11) not null,--客戶手機號 customer_password varchar2(128) not null,--密碼 create_time timestamp default sysdate not null,--註冊時間,預設為系統當前時間 bank_id integer not null,--銀行號 customer_address varchar2(256) not null,--客戶地址 customer_status integer default
1 not null,--客戶賬戶狀態,0:不可用,1:可用 account_balance varchar2(64) not null,--賬戶餘額 constraint account_pk primary key(customer_id), constraint check_sex check(customer_sex in ('','')), constraint check_status check(customer_status in(0,1)), constraint unique_id_card unique(customer_id_card), constraint
unique_phone unique(customer_phone) ); drop sequence SEQ_account_autoid -- 建立account_la的序列,自增初始值為1,最大值為999999999999,每次加1 create sequence SEQ_account_autoid minvalue 1 maxvalue 999999999999 start with 1 increment by 1 nocache; drop trigger TRG_account_autoid; -- 建立account_la的觸發器,每次插入值時查詢序列的nextVal(下一個序列值) create trigger TRG_account_autoid before insert on account_la for each row when(new.customer_id is null) begin select SEQ_account_autoid.nextval into:new.customer_id from dual; end;