Tuesday, October 8, 2013

Setup auto increment di postgresql

Jadi ceritanya, saya sedang memindahkan aplikasi saya untuk menggunakan postgresql dari sebelumnya mysql.  setelah sebelumnya punya pengalaman buruk dengan mysql. Prosesnya rada lama & ribet, karena code yang ditulis adalah mysql-centric. jadi begitu migrasi, hehehe rada berdarah2 gitu. harusnya sih pake PDO atau teknologi semacam itu agar dapat support ke beberapa database.
Nah salah satu feature database yang penting adalah autoincrement. Artinya nilai pada kolom tersebut akan teriisi otomatis jika kita melakukan operasi insert. contoh kolom yang menggunakan autoincrement: id, nomer invoice, dll.
Di mysql, feature autoincrement dimasukkan kedalam feature tabel. sehingga kalo alter table tersebut kita tinggal bilang ada bahwa colom anu adalah autoincrement.
di postgresql rada beda. autoincrement adalah sebuah entiti sendiri yang independent. di postgresql, ini disebut sequence. jadi lebih fleksible dalam penggunaannya. kita bisa ngeset start value, current value, increment, recycle, last value. nah setelah object sequence ini di create, maka selanjutnya adalah meng-assign sequence ke kolom tabel. contoh commandnya:
Create sequence:

CREATE SEQUENCE tbluser_userid_seq;
Alter tabel & colom. dalam kasus ini kolom tujuan (userid) harus bersifat UNIQUE atau sebagai primary key:
ALTER TABLE tbluser
ALTER COLUMN userid
SET DEFAULT NEXTVAL('user_userid_seq');
Update kolom userid:
UPDATE tbluser
SET userid = NEXTVAL('user_userid_seq');
Begitulah kira2, semoga bermanfaat.

Referensi : http://achmad.glclearningcenter.com/2011/08/28/setup-auto-increment-di-postgresql/

0 comments: