Di tutorial sebelumnya kita sudah mempelajari Cara Menambahkan Unique Key di Tabel MySQL. pada tutorial kali ini akan di lanjutkan dengan memahami Cara Menambahkan Auto Increment di Tabel MySQL
Apa itu Auto Increment?
Auto Increment merupakan atribut MySQL yang memungkinkan kita untuk membuat nomor unik dan urutan yang di hasilkan secara otomatis setiap menyisipkan data baru ke dalam tabel MySQL
Perhatikan contoh berikut
MariaDB [mahasiswa]> CREATE TABLE biodata ( -> id INT NOT NULL AUTO_INCREMENT, -> nama VARCHAR (50), -> PRIMARY KEY (id) -> ); Query OK, 0 rows affected (0.533 sec) MariaDB [mahasiswa]> INSERT INTO biodata (nama) VALUES -> ('Alex'), ('Ayra'), ('Regina'), ('Santoso'), ('Hartono'); Query OK, 5 rows affected (0.065 sec) Records: 5 Duplicates: 0 Warnings: 0 MariaDB [mahasiswa]> SELECT * FROM biodata; +----+---------+ | id | nama | +----+---------+ | 1 | Alex | | 2 | Ayra | | 3 | Regina | | 4 | Santoso | | 5 | Hartono | +----+---------+ 5 rows in set (0.010 sec)
Auto Increment memiliki tipe data integer dan penggunaannya disertai dengan kebutuhan Primary Key
Pada contoh di atas tidak ada nilai Auto Increment yang ditentukan ketika menyisipkan data ke dalam tabel. Jadi, MySQL akan membuat nomor urut secara otomatis
Atau, kita juga bisa menyisipkan NULL tanpa kutip dua pada urutan nilai kolom id untuk mendapatkan nomor urut secara otomatis
Perhatikan contoh berikut
________satu_______
Hasilnya akan tetap sama seperti pada contoh pertama di atas
Namun, jika kita memasukkan nilai lain ke dalam kolom Auto Increment, maka kolom tersebut akan di atur ulang, sehingga nilai berikutnya di buat secara otomatis urutan mengikuti urutan kolom yang menampilkan besaran
Perhatikan contoh berikut
MariaDB [mahasiswa]> INSERT INTO biodata VALUES -> (97, 'yaya'), (NULL, 'reza'), (NULL, 'firza'); Query OK, 3 rows affected (0.127 sec) MariaDB [mahasiswa]> SELECT * FROM biodata; +----+---------+ | id | nama | +----+---------+ | 1 | Alex | | 2 | Ayra | | 3 | Regina | | 4 | Santoso | | 5 | Hartono | | 97 | yaya | | 98 | reza | | 99 | firza | +----+---------+ 8 rows in set (0.001 sec)
Hasil di atas menunjukkan bahwa, angka 97 di masukkan sebagai nilai auto increment, dan data setelahnya urutan permainan mengikuti setelah angka setelah 97 yaitu 98 dan 99
Sekang coba kita masukkan nilai 96 ke dalam tabel biodata. Perhatikan contoh berikut
MariaDB [mahasiswa]> INSERT INTO biodata VALUES (96, 'karen'); Query OK, 1 row affected (0.056 sec) MariaDB [mahasiswa]> SELECT * FROM biodata; +----+---------+ | id | nama | +----+---------+ | 1 | Alex | | 2 | Ayra | | 3 | Regina | | 4 | Santoso | | 5 | Hartono | | 96 | karen | | 97 | yaya | | 98 | reza | | 99 | firza | +----+---------+ 9 rows in set (0.001 sec)
Hasil di atas menjelaskan bahwa, angka 96 secara otomatis di urutkan sebelum angka terbesar di dalam tabel biodatadan tidak di urutkan setelah angka yang terbesar meskipun kita memasukkan koin secara acak
Cara Reset Nilai Auto Increment di Tabel MySQL
Auto Increment secara otomatis akan memprogram urutan angka di mulai dari angka satu ketika pertama kali data di inputkan ke dalam tabel
Kita bisa saja menentukan urutan angka pertama ataupun urutan angka setelahnya sesuai yang kita ingikan, gunakan query berikut
ALTER TABLE nama_tabel AUTO INCREMENT =100; _
Setelah mengatur nilai Auto Increment =100 maka nilai id pada data yang akan di inputkan dimulai dari angka 100
Setelah menjelaskan Cara Menambahkan Auto Increment Di Tabel MySQL, materi selanjutnya akan kami bahas Cara Mengubah (Update) Data Di Tabel MySQL
Ketika membuat sebuah tabel di database MySQL, biasanya akan ada sebuah record/field yang di jadikan sebagai PRIMARY KEY dengan fitur AUTO_INCREMENT (memberi nilai otomatis secara urut ketika data diinput)
daftar isi
permasalahan
Apabila sebuah field misal id dijadikan PRIMARY KEY AUTO_INCREMENT sebagai penomoran maka ketika sebuah data dihapus kemudian data diinputkan lagi, urutan nomor tersebut tidak akan berurutan. Hal ini akan menyebabkan data yang dihasilkan tidak berurutan serta berakibat pada data yang tidak akurat dan baik
Sebagai contoh misal kita memiliki data user seperti gambar dibawah
Kemudian, kita hapus beberapa data (yang bertanda centang). Sehingga pengguna data menjadi seperti berikut
Jika diperhatikan, field id sudah tidak berurutan lagi karena sebagian data sudah dihapus. Jika nantinya kita menambahkan data baru, maka id yang diberikan ialah nomor 11. Kenapa bukan 10?
Ya, karena sebelum tanggal dihapus, id terakhir adalah 10. Maka ketika ada penambahan data baru, MySQL akan tetap melanjutkan urutan id menjadi 11. Lalu bagaimana ketika data baru ditambahkan, id pengguna tetap bisa berurutan ?
Untuk mengatasi hal tersebut, maka perlu dilakukan reset nilai auto increment di database MySQL. Agar nantinya data yang dihasilkan berurutan sehingga akurat dan baik. Ada beberapa cara yang dapat digunakan untuk mereset nilai auto increment yaitu
Catatan. Jangan mempraktekkan tutorial ini di pembuatan database web atau aplikasi Anda. Silakan praktek di database development serta lakukan backup database terlebih dahulu
Sisi 1 – Ubah Tabel
Menggunakan perintah ALTER TABLE yaitu mengubah struktur auto increment. Dengan cara ini Anda cukup menentukan nilai auto increment yang akan direset. berikut perintahnya
ALTER TABLE nama_tabel AUTO_INCREMENT = 1;
Keterangan
Perintah diatas akan mereset nilai auto increment ke nilai 1
ALTER TABLE nama_tabel AUTO_INCREMENT = 7; _
Keterangan
Perintah diatas akan mereset nilai auto increment ke nilai 7
Sisi 2 – Potong Tabel
Dengan perintah TRUNCATE, semua data akan dihapus dan field dengan auto increment akan direset kembali. berikut perintahnya
TRUNCATE TABLE nama_tabel;
perhatian
Menggunakan perintah TRUNCATE, berarti semua data didalam tabel akan terhapus. Hati-hati menggunakan perintah ini jika tabel Anda memiliki data yang banyak dan penting
Side 3 – Menghapus Field Auto Increment & Membuatnya Kembali
Dengan cara ini Anda harus menghapus field ALTER TABLE nama_tabel AUTO_INCREMENT = 7; 0 ALTER TABLE nama_tabel AUTO_INCREMENT = 7; 1, kemudian membuat kembali field tersebut. Pertama, hapus terlebih dahulu kolom dengan ALTER TABLE nama_tabel AUTO_INCREMENT = 7; 2 dengan perintah berikut
Menghapus Field Auto Increment
________sebelas_______
Kemudian buat kembali field tersebut dengan PRIMARY KEY AUTO_INCREMENT, maka secara otomatis data tersebut akan direset
Membuat Kembali Field dengan Auto Increment
ALTER TABLE nama_tabel ADD nama_field INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
Baca Main
– Membuat Nomor Urut dengan MySQL
– Menggunakan UUID dari PHP
Wajah 4 – Setel Ulang Peningkatan Otomatis PHPMyAdmin
Jika Anda menggunakan PHPMyAdmin untuk mengelola database MySQL. Anda juga dapat me-reset auto increment secara langsung melalui PHPMyAdmin
Untuk me-reset auto increment di PHPMyAdmin langkahnya adalah
Pertama
Pilih tabel yang ingin di reset id auto incrementnya. Selanjutnya klik menu Operations pada tab tabel tersebut
kedua
Pada bagian Table options, isi kolom AUTO_INCREMENT dengan nilai urutan baru. Pastikan nilai yang Anda isi adalah nomor id yang belum digunakan dan di urutan akhir. Kemudian klik tombol Go untuk menyimpan
Langkah diatas sebenarnya sama saja dengan menjalankan perintah ALTER TABLE nama_tabel AUTO_INCREMENT = 7; 5 pada cara 1 yang sudah dijelaskan sebelumnya, hanya disini kita menggunakan bantuan tool PHPMyAdmin
Kesimpulan
Jika didalam tabel terdapat banyak data, cara ke-3 cukup efektif untuk Anda gunakan. Dikarenakan data Anda tidak akan terhapus. Namun apabila Anda ingin mereset nilai auto_increment ke posisi tertentu gunakanlah cara ke-1