Oracle: Identity column használata
Adatbázisokkal kapcsolatos cikkek / Oracle (1684 katt)
Ha valaki használt az Oracle-n kívül más adatbázisrendszereket is, akkor ismerős lehet számára az auto increment lehetősége, amellyel egy adott tábla egy oszlopát lehet automatikusan feltölteni egy folyamatosan növekvő értékkel. Ezt például elsődleges kulcsok, azonosítók képzésére lehet használni.
Az Oracle régebbi verzióiban nem volt ilyen egyszerű lehetőség erre a célra, ehelyett kézzel létrehozott sequence-eket, triggereket stb. kellett használni. Az Oracle 12c verziójában már van egy kényelmesebben használható módszer, az Identity Column.
Első példa:
-- test_table1
drop table test_table1;
create table test_table1
(test_id integer generated always as identity (nomaxvalue nocache order),
test_text varchar2(80) not null,
primary key (test_id));
insert into test_table1 (test_text) values ('Row 01');
insert into test_table1 values (null, 'Row 02'); -- Error
commit;
select *
from test_table1;
Ha a generated always as identity lehetőséget választjuk, akkor a példában megadott második insert utasítás nem fog lefutni.
A második példában a generated by default on null as identity lehetőséget választjuk, így már lefut a második insert utasítás is:
-- test_table2
drop table test_table2;
create table test_table2
(test_id integer generated by default on null as identity (nomaxvalue nocache order),
test_text varchar2(80) not null,
primary key (test_id));
insert into test_table2 (test_text) values ('Row 01');
insert into test_table2 values (null, 'Row 02'); -- OK
commit;
select *
from test_table2;
Bővebb infó:
https://oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1
https://oracle-base.com/articles/12c/default-values-for-table-columns-enhancements-12cr1
Előző oldal | Kapitány |