Auto Increment In Oracle

Bagi anda yang terbiasa menggunakan MySql dalam membangung aplikasi, mungkin sudah tidak asing lagi dengan istilah auto increment. Auto increment sendiri adalah penandaan suatu field agar setiap kali kita insert data maka field tersebut tidak perlu lagi diinput melainkan akan secara otomatis diinput dengan sebuah nilai angka yang berurutan. Misal ada field “id” dan “nama”, dimana field  “id” adalah auto increment. Ketika insert data, kita hanya perlu memasukkan nilai “nama” saja di dalam field tersebut, sedangkan field “id” akan terisi otomatis dengan suatu nilai angka yang selalu berurutan misal 1, selanjutnya 2 selanjutnya 3 dan seterusnya.

Nah, ketika anda menggunakan oracle fitur auto increment tidaklah sesederhana itu. Oracle sendiri tidak menyediakan secara langsung sebuah tipe seperti itu (auto increment).  Maka dari itu kita perlu menyisipkan suatu script di dalam oracle database untuk membuatnya dapat bekerja seolah-olah memiliki tipe auto increment.

Pertama-tama buatlah sebuah sequence pada database anda.

CREATE SEQUENCE nama_sequence
    INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER;

Kemudian buatlah sebuah trigger dimana trigger tersebut akan selalu dijalnkan sebelum kita menyimpan suatu data baru ke tabel tersebut :

create or replace 
TRIGGER nama_trigger 
    BEFORE INSERT ON nama_tabel_anda 
      FOR EACH ROW
      BEGIN
         SELECT nama_sequence.NEXTVAL
         INTO   :new.nama_field_yang_akan_dibuat_auto_increment
         FROM   dual;
      END;

Selesai, untuk memastikan apakah sudah auto increment atau belum, cobalah menginput sebuah data dimana anda mengosongkan field yang telah anda buat auto increment pada oracle…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: