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