Daily Archives: 6 October 2011

Auto Increment Integer di MySQL

Ada yang menarik pada rule auto increment di basis data MySQL. Misalkan kita membuat field user_id dengan tipe data integer lalu kita set auto increment. Jika kita alpa atau sengaja tidak mengisi value user_id saat meng-insert row baru, secara otomatis value user_id akan diisi dengan increment dari angka tertinggi yang ada di field tersebut. Kalau hal ini, kita semua pasti sudah tahu.

Nah, bagaimana jika saya ingin memasukkan user_id dengan nilai 0 (zero)? Apabila saya memasukkan nilai 0, nilai saya itu akan langsung diganti dengan nilai increment dari angka tertinggi. Gagal deh membuat user_id 0. Lalu, saya coba lagi dengan memasukkan user_id dengan nilai -1 — harapannya agar di-increment menjadi 0, eh gagal juga. Nilai tetap -1. Ternyata semua nilai integer negatif yang kita insert tidak di-auto increment. Nilai integer negatif itu akan bertahan apa adanya. Akhirnya, iseng-iseng mencoba memasukkan nilai NULL untuk field user_id saat meng-insert user yang baru. Ternyata nilai NULL itu diubah (atau di-auto increment?) menjadi nilai 0. Hmm… baru tahu saya. :mrgreen:

Advertisement