Langkah pertama adalah mengambil nilai field terbesar dari database yang akan di autoincrement, misal dalam suatu field bernama id_indikator pada suatu tabel bernama indikator_penilaian berisi dua record yaitu: 1.DTM.016_1.1 dan 1.DTM.016_1.2, sedangkan nilai yang akan di-increment adalah digit terakhir, maka cara mengetahui field yang terbesar adalah dengan melakukan query sbb:
SELECT MAX(id_indikator) FROM indikator_penilaian WHERE id_indikator LIKE '1.DTM.016_1.%'
Query di atas akan menghasilkan ‘1.DTM.016_1.2′
Langkah selanjutnya adalah mengambil digit terakhir dari hasil query, hal ini dilakukan dengan mereplace ‘1.DTM.016_1.’ dengan ”, lalu mengkonversinya dari string ke numerik dan ditambahkan dengan 1.
Untuk selanjutnya apabila akan dilakukan penyisipan record baru maka id_indikator yang terbaru adalah ‘1.DTM.016_1.’ ditambahkan nilai tadi.
Walaupun sepintas cara ini berhasil namun query di atas ada kelamahannya, yaitu angka autoincrement hanya akan sampai pada digit ke 9, hal ini disebabkan karena operasi MAX diterapkan pada tipe data string. Untuk mengatasi hal tersebut perlu dilakukan perbaikan query menjadi:
SELECT MAX(CAST(REPLACE(id_indikator,'1.DTM.016_1.','') AS UNSIGNED)) 'max_id' FROM indikator_penilaian WHERE id_indikator LIKE '1.DTM.016_1.%'
Dengan sintaks diatas tidak akan terjadi masalah lagi.

Recent Comments