oracle的自增長

2022-02-14 07:50:35 字數 1537 閱讀 7174

mysql的自增長非常容易,乙個 auto_increment

就搞定,可是oracle就不行了

下面是oracle的自增長

#建立乙個表

create table t_test_departments (

id number (

10) not null,

description varchar2 (

50) not null

);#建立乙個表

create table t_test_departments2 (

id number (

10) not null,

description varchar2 (

50) not null

);#設定唯一的字段

alter table t_test_departments add (constraint) dept_pk primary key (id);

alter table t_test_departments2 add (constraint dept_pk primary key (id));

#建立序列

create sequence dept_seq;

create sequence dept_seq2;

#觸發器版本1:非空時,才使用序列的nextval值

create or replace trigger dept_before_insert

before insert on t_test_departments

for each row

when (new.id is null)

begin

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

end ;觸發器版本2: 無視插入資料時,指定的id

create or replace trigger dept_before_insert2

before insert on t_test_departments2

for each row

begin

select dept_seq2.nextval into :

new.id from dual;

end;

#測試資料

insert into t_test_departments (id, description) values (

19, '

指定id');

insert into t_test_departments (description) values (

'不指定id');

insert into t_test_departments2 (id, description) values (

19, '

指定id');

insert into t_test_departments2 (description) values (

'不指定id

');

Oracle 的 自增長

oracle的自增長與mysql 的自增長不同,mysql使用其關鍵字auto increment實現自增長,而oracle中沒有改關鍵字,所以要使oracle中表自增長,可以使用序列實現該效果。如下所述 1 建立表user create table user id number 2 not nul...

oracle 自增長主鍵

1 首先,你要有一張表!create table example id number 4 not null primary key,name varchar 25 phone varchar 10 address varchar 50 2 然後,你需要乙個自定義的sequence create se...

ORACLE自增長列

新建序列 create sequence create sequence q tpa acitive alarms id minvalue 1 maxvalue 99999999999999999 start with 100 increment by 1 cache 100 觸發器 create ...