Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Kolom Kenaikan Otomatis – Urutan sebagai Nilai Default di Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Kencan Kemarin di Oracle

  2. Mengapa saya tidak dapat menggunakan variabel bind dalam pernyataan DDL/SCL dalam SQL dinamis?

  3. Logika Bisnis:Basis Data atau Lapisan Aplikasi

  4. pencarian teks oracle blob

  5. Bagaimana Memanggil Fungsi Oracle dengan Python?