Membuat Auto Increment / Auto Number Di Oracle

Bagi para developer/programmer yang biasa menggunakan database Microsoft SQL Server pasti sudah tidak asing lagi dengan istilah auto increment pada tabel. auto increment / auto number digunakan untuk membuat penomoran secara otomatis pada sebuah tabel. di Microsoft SQL Server kita cukup mengatur Is Indentity pada kolom yang ingin di jadikan auto increment menjadi Yes, simple bukan?

Berbeda halnya dengan Oracle, Oracle tidak menyediakan fitur semacam ini pada tabel-nya. Auto Increment pada Oracle di sebut dengan istilah Sequences. sehingga untuk membuat kolom pada table menjadi auto number kita harus membuat sequence terlebih dahulu. Ok, langsung saja ke TKP..

Misalkan kita mempunyai tabel dengan nama MsCutomer dengan kolom CustomerID, CustomerName, dan kolom CustomerID akan kita jadikan auto increment/auto number maka langkah-langkahnya adalah :

Pertama kita buat Sequence misalnya dengan nama customer_seq, scriptnya :

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

Penjelasan:
CREATE SEQUENCE customer_seq adalah perintah untuk membuat sequence dengan nama customer_seq
MINVALUE 1 adalah nilai minimum dari auto number
MAXVALUE 999999999999999999999999999 adalah nilai maksimum dari auto increment, jika record pada tabel sudah mencapai nilai ini maka oracle akan otomatis meresetnya kembali ke MINVALUE.
START WITH 1 adalah nilai awal dari auto number.
INCREMENT BY 1 adalah nilai penambahan yang akan dipakai.
CACHE 20 adalah cache memory yang dipakai pada sequence.

setelah itu kita bisa menggunakan sequence tersebut dengan cara memanggil method customer_seq.nextval

misalkan di sini saya akan melakukan insert data pada tabel MsCustomer, maka penggunaan sequence-nya adalah :

INSERT INTO MsCustomer(CustomerID, CustomerName)
VALUES (customer_seq.nextval, 'Skymediasoft');

Berikut contoh source code dengan menggunakan VB.NET 2010.

Imports Oracle.DataAccess.Client

Public Class FrmSequence
    Dim con As New OracleConnection("Data Source=orcl; User Id=SCOTT; Password=tiger")
    Dim cmd As OracleCommand
    Dim trans As OracleTransaction
    Dim strQuery As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInsert.Click
        con.Open()
        trans = con.BeginTransaction
        strQuery = "INSERT INTO MsCustomer(CustomerID,CustomerName) VALUES(customer_seq.NextVal,'Skymediasoft')"
        cmd = New OracleCommand(strQuery, con)
        cmd.ExecuteNonQuery()
        trans.Commit()
        cmd.Dispose()
        con.Close()
    End Sub
End Class

Selamat Mencoba…!

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: