Kolom Kenaikan Otomatis adalah persyaratan yang cukup umum dalam pengkodean. Berikut adalah beberapa cara untuk mendapatkannya di Oracle
Peningkatan otomatis di oracle
Fitur ini (Kolom Peningkatan Otomatis Oracle – Urutan sebagai Nilai Default) sejauh ini tidak ada dalam database Oracle. Tetapi dengan 12c, oracle mampu menyediakannya.
Misalkan kita ingin mengatur tabel Oracle di mana urutannya harus bertambah secara otomatis pada insert . Ada banyak cara untuk mencapainya
Opsi 1
Sebelum Oracle 12c, kita perlu menggunakan sebelum memasukkan pemicu untuk mencapainya
create table test_lab ( id number primary key name varchar (10) ); create sequence test_lab_seq start with 1 increment by 1 nocycle; create or replace trigger test_lab_bef_auto before insert on test_lab for each row begin select test_lab_seq.nextval into :new.id from dual; end; /
atau
create or replace trigger test_lab_bef_auto
before insert on test_lab
for each row
begin
:new.id := test_lab_seq.nextval;
end;
/
Kita dapat menentukan kapan id adalah null di pemicu untuk menghindari kesalahan saat pernyataan insert memiliki nilai kolom id
insert into test_lab values ('john'); insert into test_lab values ('scott'); insert into test_lab values ('bill'); insert into test_lab values ('tom'); insert into test_lab values ('Duke'); commit; select * from test_lab;
Opsi 2:
Dengan Oracle 12c, kita dapat langsung menetapkan urutan nextval sebagai nilai default untuk sebuah kolom, Jadi Anda tidak perlu lagi membuat pemicu untuk mengisi kolom dengan nilai urutan berikutnya, Anda hanya perlu mendeklarasikannya dengan definisi tabel.
create sequence test_lab_seq start with 1 increment by 1 nocycle; create table test_lab ( id number default test_lab_seq.nextval primary key ); insert into test_lab values ('Cat1'); insert into test_lab values ('Cat2'); insert into test_lab values ('Cat3'); insert into test_lab values ('Cat4'); insert into test_lab values ('Cat5'); commit; select * from test_lab;
Opsi 3
Dengan 12c, kita dapat menggunakan fitur mengidentifikasi
create table test_lab ( id number(10) GENERATED AS IDENTITY, name varchar(15) ); Table created. Desc TEST_LAB Name Null? Type ---- ---- ---- ID NOT NULL NUMBER(10) NAME VARCHAR2(15)
- Kita dapat melihat bahwa batasan NOT NULL secara otomatis diterapkan pada kolom Identitas
- Oracle secara internal menggunakan urutan untuk mengisi nilai kolom kenaikan otomatis.
insert into test_lab values ('London'); insert into test_lab values ('New york'); insert into test_lab values ('Tokyo'); insert into test_lab values ('Delhi'); insert into test_lab values ('Bangalore'); commit; select * from test_lab;
Artikel Oracle Sql Terkait
cara membuat tabel di oracle
Cara membuat tampilan Oracle
Kueri dan Paginasi Top-N
cara menulis kueri sql
Pemrosesan dekode sql Oracle