6/13/2017

Cara Membuat Kode Auto Increment di Database PostgreSQL

Seperti yang kita ketahui, kadang auto_increment sangat berguna bila kita ingin membuat kode unik otomatis tanpa harus dipusingkan dengan pembuatan pola kode nya. Tidak seperti pembuatan kode otomatis pada postingan saya sebelumnya mengenai Cara Membuat Kode Barang Otomatis dengan Trigger dan Function di MySQL yang terbilang sangat rumit, kali ini saya akan memberikan cara yang sangat sederhana, tapi berbeda database pula. Yap, Karena kali ini yang saya gunakan ialah database PostgreSQL. Tentu berbeda pembuatan auto increment di Mysql dengan PostgreSQL. Di mysql kita dengan mudah mengatur field untuk dijadikan auto increment, hanya tinggal atur field nya bertipe integer, dan atur sebagai primary key, lalu atur menjadi auto_increment. Mudah bukan?

Seperti ini untuk Mysql:
CREATE table contoh ( no int NOT NULL auto_increment,
Nama varchar(30),
Alamat varchar(30),
Primary key(no));

Namun di postgres, terdapat 2 cara, dengan yang pertama dengan menggunakan tipe data serial, dan tidak.

Dengan menggunakan type data Serial :

CREATE TABLE contoh(
no serial NOT NULL,
nama character varying(30),
alamat character varying(30),
CONSTRAINT contoh_pkey PRIMARY KEY (no))
WITH (
OIDS=FALSE
);
ALTER TABLE contoh OWNER TO postgres;


Jika tidak menggunakan type data serial, maka kita perlu membuat auto_increment nya terlebih dahulu lalu dilanjutkan dengan membuat tabel nya. Oh ya perlu diketahui, di PostgreSQL kita menyebutnya Sequence, bukan Auto_increment.

Tidak menggunakan type data Serial:
Buat sequence nya

CREATE SEQUENCE sequence_no_urut


Buat tabel dan panggil sequence nya.

CREATE TABLE contoh (
id integer NOT NULL DEFAULT nextval('sequence_no_urut'::regclass),
price NUMERIC
);


Mudah bukan? silahkan di explore lagi dan jika ada pertanyaan silahkan berkomentar dibawah.

Selanjutnya saya akan bahas tentang Cara Reset Sequence PostgreSQL

Mulai menulis blog sejak tahun 2012. Saat ini sedang disibukkan dengan karir dibidang IT nya.

Komentar yang mengandung spam / link aktif akan secara otomatis disembunyikan. Mohon maaf atas ketidaknyamanan jika pertanyaan telat ataupun tidak terbalas karena keterbatasannya waktu. Silahkan hubungi kami di menu Contact Us. Terimakasih
EmoticonEmoticon