DatabaseOracle

Membuat Sequence(Autonumber) Di Oracle

341
oracle database plsql
oracle database plsql

Jika di mysql kita menggunakan auto increment, untuk mejalankan id otomatis, berbeda dengan di database oracle kita harus membuat sendiri auto increment, dengan membuat squence

contoh cara membuat squence :

di sini kita akan membuat squence  untuk kebutuhan id_user, kita namakan nama squencenya SEQ_USER

CREATE SEQUENCE SEQ_USER
  MINVALUE 1
  MAXVALUE 999999999999999999999999999
  START WITH 1
  INCREMENT BY 1
  CACHE 20;

Jika kita menghilangkan MAXVALUE maka adakan otomatis ke defaultnya

MAXVALUE 999999999999999999999999999,

maksud dari MINVALUE berarti sequence akan di mulai dari angka satu,

sedangkan code increment by maka setiap angka berikutnya akan di tambah kan satu menjadi 2,3,4 dan seterusnya. Untuk CACHE 20 itu untuk kinerja sequence itu sendiri.

Kelemahan dari menciptakan urutan dengan cache adalah bahwa jika terjadi kegagalan sistem, semua cache nilai urut yang belum digunakan, akan “hilang”. Hal ini menghasilkan “celah” dalam nilai-nilai urutan ditugaskan. Ketika sistem kembali up, Oracle akan cache nomor baru dari mana ia tinggalkan dalam urutan, mengabaikan apa yang disebut “hilang” urutan nilai-nilai.

jika membuat sequence tanpa menggunakan cache sampelnya seperti berikut ini :

CREATE SEQUENCESEQ_USER
MINVALUE 1
START WITH 1
INCREMENT BY 1
NOCACHE;

maka bisa juga membuat sequence yang simpel seperti berikut :

CREATE SEQUENCE SEQ_USER
MINVALUE 1
START WITH 1
INCREMENT
BY 1 CACHE 20;

untuk menjalankan sequencenya ada perlu menggunakan NEXTVAL

jika kita jalankan menggunakan select seperti contoh berikut, maka maka auto number yang di mulai dari 1,2,3,4  akan berjalan sesuai dengan select yang kita jalankan

SELECT SEQ_USER.NEXTVAL FROM DUAL
Exit mobile version