0

以下にスクリプトがあります - 自動インクリメントと同じ効果が得られるかどうかはわかりません。データベースに行を挿入するときに、ID を挿入したくありません。ID 以外の行を挿入するときに、データベースがそれらを自動的に生成して挿入するようにします。

CREATE TABLE myschema.mytable
(id NUMBER PRIMARY KEY NOT NULL,
name VARCHAR2(30));

CREATE SEQUENCE myschema.test1_sequence
START WITH 1
INCREMENT BY 1;

create or replace trigger myschema.auto_increment
before insert on myschema.mytable
for each row
begin
select test1_sequence.nextval into :new.id from dual;
end;
/
4

1 に答える 1

2

はい、使用する必要がないことを除いて、動作します

id NUMBER PRIMARY KEY NOT NULL

PRIMARY KEYすでにNOT NULL制約が含まれているため、

id NUMBER PRIMARY KEY

で十分です。

于 2012-08-30T03:50:48.147 に答える