Ruang penulis
← Kembali ke jurnal
Oracle

SEQUENCE Oracle untuk menghasilkan ID unik

Pelajari cara membuat dan memakai SEQUENCE untuk id yang selalu bertambah pada Oracle.

DTim Diary Coding · 06 Sep 2026 · 1 menit baca

Oracle tidak punya AUTO_INCREMENT

Berbeda dengan MySQL yang punya AUTO_INCREMENT, Oracle menggunakan objek terpisah bernama SEQUENCE untuk menghasilkan angka yang terus bertambah.

Membuat sequence

CREATE SEQUENCE artikel_seq
    START WITH 1
    INCREMENT BY 1
    NOCACHE
    NOCYCLE;

Memakai sequence saat insert

INSERT INTO artikel (id, judul)
VALUES (artikel_seq.NEXTVAL, 'Mengenal Oracle Sequence');

-- Mengambil nilai terakhir yang dipakai pada sesi ini
SELECT artikel_seq.CURRVAL FROM dual;

NEXTVAL menghasilkan angka baru setiap dipanggil, sedangkan CURRVAL membaca nilai terakhir yang sudah diambil pada sesi yang sama.

Otomatiskan lewat trigger atau identity column

Oracle 12c ke atas mendukung GENERATED AS IDENTITY yang menggabungkan sequence dan pengisian otomatis kolom dalam satu definisi.

CREATE TABLE artikel (
    id NUMBER GENERATED ALWAYS AS IDENTITY,
    judul VARCHAR2(200) NOT NULL,
    CONSTRAINT artikel_pk PRIMARY KEY (id)
);

Perhatikan celah nomor

Sequence bisa meninggalkan celah nomor jika transaksi yang mengambil nilai dibatalkan, karena NEXTVAL tidak ikut rollback. Jangan mengandalkan sequence sebagai penghitung baris yang berurutan tanpa celah.

Latihan

Buat tabel baru dengan kolom identity, lalu bandingkan hasilnya dengan pendekatan sequence manual pada tabel artikel di atas.

← Jelajahi catatan lainnya