Minggu, 24 Maret 2013

Menggunakan Field Auto Increment di MySQL



Auto increment field pada MySQL adalah suatu tipe field integer yang secara otomatis akan bertambah nilainya jika terjadi penambahan row pada table dimana field tersebut berada.

Otomatis disini artinya pada saat kita memasukkan data baik melalui stement INSERT maupun melalui mekanisme data access lainnya, field tersebut tidak perlu dimasukkan nilainya atau cukup diberi nilai NULL, maka MySQL akan menentukan sendiri nilai apa yang akan diberikan sebagai akibat penambahan baris data tersebut.
Definisi Auto Increment Field
Untuk menambahkan atau merubah suatu field sebagai auto increment, berikut adalah beberapa aturannya :
  • field tersebut harus didefinisikan sebagai primary key.
  • menambahkan keyword AUTO_INCREMENT pada definisi field.
  • harus bertipe numerik (TINYINT, INT, FLOAT, DECIMAL, dan lain-lain).
  • hanya boleh ada satu field auto increment pada suatu table, tidak bisa lebih.

Sebagai contoh, berikut adalah definisi auto increment field dengan nama kode-transaksi :
kode_transaksi INT NOT NULL AUTO_INCREMENT KEY

Membuat Table dengan Auto Increment Field 
Berikut adalah contoh statement SQL untuk membuat suatu table bernama "table_ai" dengan auto increment pada field  "kode_transaksi".

CREATE TABLE table_ai (
        kode_transaksi INT NULL AUTO_INCREMENT KEY,
        deskripsi VARCHAR(200)
);

Sekarang mari kita menambahkan beberapa data pada table tersebut dan setelah itu kita membaca hasilnya dengan perintah berikut ini.

INSERT INTO table_ai(deskripsi) VALUES ('deskripsi 1');
INSERT INTO table_ai(deskripsi) VALUES ('deskripsi 2');
SELECT * FROM table_ai;

Hasil eksekusinya terlihat pada gambar berikut di bawah ini.


Sekarang mari kita coba eksekusi lagi perintah berikut ini.

INSERT INTO table_ai(kode_transaksi, deskripsi) VALUES (NULL,'deskripsi 3');
SELECT * FROM table_ai;

Dan berikut adalah hasil eksekusi dari perintah tersebut.
Menambahkan Auto Increment Field pada suatu Table 
Jika kita ingin menambahkan field auto increment pada suatu table yang sudah ada, maka pastikan tidak ada definisi primary key sebelumnya pada table tersebut atau penambahan field akan gagal.

Berikut adalah contoh statement SQL untuk menambahkan field auto increment  "kode_transaksi" pada table "tr_penjualan" dari database phi_minimart.

ALTER TABLE tr_penjualan ADD kode_transaksi MEDIUMINT NOT NULL AUTO_INCREMENT KEY;

Berikut adalah isi data pada table tr_penjualan setelah eksekusi perintah tersebut di atas.



Merubah Field menjadi Auto Increment

Ada kalanya field yang sudah kita definisikan sebelumnya ingin kita rubah menjadi auto increment dengan melihat efektivitasnya yang lebih baik sebagai unique identifier yang automate.

Sebagai contoh, misalkan kita memiliki suatu table dengan nama "suppliers" dan kita memiliki field "supplier_id" yang bertipe integer dan ingin kita rubah sebagai auto_increment maka perintahnya adalah sebagai berikut.

ALTER TABLE suppliers MODIFY COLUMN supplier_id INT NOT NULL AUTO_INCREMENT KEY;

Penutup
Auto increment field merupakan suatu tipe data numerik yang mengisi nilainya secara otomatis secara incremental  atau bertambah terus. Pada artikel ini telah ditunjukkan bagaimana kita mendefinisikan field tersebut dalam tiga skenario, yaitu :
  • pada saat pembuatan table baru.
  • sebagai field tambahan pada table yang sudah ada.
  • melakukan konversi field yang sudah ada menjadi auto increment.
Jika kita eksplorasi dan analisa lebih lanjut maka tipe field ini sangat berguna terutama untuk table yang perlu dikenali secara unik namun sebelumnya tidak memiliki key yang bisa digunakan untuk tujuan tersebut.

Tidak ada komentar :

Posting Komentar