Dhafiq Sagara adalah orang bodoh yang tidak bisa apa-apa, tapi dia selalu berusaha untuk terus menjadi yang lebih baik. Rasa keingin-tahuannya sangat tinggi, selalu berusaha dan terus berusaha, trial dan error adalah prinsip belajarnya.

13 Jan 2011

Membuat Kolom Auto Increment Pada Oracle

Dalam membuat kolom auto increment pada MySQL dan pada Oracle memiliki cara yang berbeda. Jika menggunakan MySQL, kita dimudahkan untuk pembuatan auto increment data, karena bisa langsung menggunakan fungsi auto_increment, sedangkan pada Oracle tidak semudah itu. 

Mari kita bahas bagaimana membuat kolom auto increment pada oracle mulai dari pembuatan table sampai insert data.



Create Table
Misalkan kita mempunyai schema table seperti yang dibuat berikut:
create table buku_telepon(
id number,
no_hp varchar2(20),
nama varchar2(50),
alamat varchar2(100),
email varchar2(100)
)
Dan pada id merupakan data yang di auto increment.


Create Sequence
Pada oracle, untuk membuat auto increment itu di atur melalui sequence. Gunakan query berikut:
create sequence buku_telepon_id_seq
start with 1
increment by 1
maksudnya adalah kita membuat sequence dengan nama buku_telepon_id_seq (nama tersebut bebas) yang nilainya dimulai dari angka 1 dan peningkatannya 1 kali. Jadi ketika data diinputkan, maka angka awal untuk kolom auto increment adalah angka 1 dan meningkat 1 kali tiap ada inputan data baru.

Insert Data
Berikut contoh insert data:
insert into buku_telepon values (buku_telepon_id_seq.nextval, '085612345667', 'Dhafiq Sagara', 'Jember', 'mudafiq.riyan@yahoo.com');
Maka akan muncul data tersebut dengan id = 1

Akan tetapi dengan cara tersebut sungguh sangat rumit, karena untuk menginputkan data, kita harus memanggil nama sequence (buku_telepon_id_seq.nextval). Sebenarnya kita pun bisa menyederhanakan caranya dengan memanfaatkan fungsi trigger.

Menggunakan Fungsi Trigger
Berikut syntax trigger untuk membuat auto increment secara otomatis pada oracle.
CREATE OR REPLACE TRIGGER auto_telepon
BEFORE INSERT
ON buku_telepon
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT buku_telepon_id_seq.nextval INTO :NEW.ID FROM dual;
END;
Pada fungsi trigger di atas, id akan secara otomatis di tambahkan ketika data baru ditambahkan.


4 komentar:

  1. kak, software nya apa aja yg dibutuhkan kalo kita mau pakai database oracle?
    makasi ka, mohon info nya :)

    BalasHapus
  2. software yg dibutuhkan database oraclenya... installernya dapat didownload disini http://www.oracle.com

    BalasHapus
  3. permisi mas, saya mau tanya nih kalo mau buat semacem kode otomatis di programnya langsung itu gimana ya? saya pake java web spring

    BalasHapus
  4. kalo id nya ingin di buat unik menjadi misal BM00001,, itu bagaimana?

    BalasHapus