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 ...