MySQL AUTO_INCREMENT dengan Contoh

Apa itu kenaikan otomatis?

Kenaikan Otomatis adalah fungsi yang beroperasi pada tipe data numerik. Secara otomatis menghasilkan nilai numerik berurutan setiap kali catatan dimasukkan ke dalam tabel untuk bidang yang ditentukan sebagai kenaikan otomatis.

Kapan menggunakan kenaikan otomatis?

Dalam pelajaran normalisasi database, kita melihat bagaimana data dapat disimpan dengan redundansi minimal, dengan menyimpan data ke dalam banyak tabel kecil, yang terkait satu sama lain menggunakan kunci primer dan asing.

MySQL AUTO_INCREMENT dengan Contoh

Kunci utama harus unik karena kunci tersebut mengidentifikasi baris dalam basis data secara unik. Namun, bagaimana kita dapat memastikan bahwa kunci utama selalu unik? Salah satu solusi yang mungkin adalah menggunakan rumus untuk menghasilkan kunci utama, yang memeriksa keberadaan kunci tersebut dalam tabel, sebelum menambahkan data. Ini mungkin berhasil, tetapi seperti yang Anda lihat, pendekatannya rumit dan tidak sepenuhnya aman. Untuk menghindari kerumitan tersebut dan memastikan bahwa kunci utama selalu unik, kita dapat menggunakan MySQLFitur Auto increment untuk menghasilkan kunci utama. Auto increment digunakan dengan tipe data INT. Tipe data INT mendukung nilai yang ditandatangani dan tidak ditandatangani. Tipe data yang tidak ditandatangani hanya dapat berisi angka positif. Sebagai praktik terbaik, disarankan untuk menentukan batasan yang tidak ditandatangani pada kunci utama auto increment.

Sintaks kenaikan otomatis

Sekarang mari kita lihat skrip yang digunakan untuk membuat tabel kategori film.

CREATE TABLE `categories` (
  `category_id` int(11) AUTO_INCREMENT,
  `category_name` varchar(150) DEFAULT NULL,
  `remarks` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`category_id`)
);

Perhatikan “AUTO_INCREMENT” pada kolom kategori_id. Hal ini menyebabkan Id kategori dihasilkan secara otomatis setiap kali baris baru dimasukkan ke dalam tabel. Itu tidak disediakan saat memasukkan data ke dalam tabel, MySQL menghasilkannya.

Secara default, nilai awal untuk AUTO_INCREMENT adalah 1, dan akan bertambah 1 untuk setiap record baru

Mari kita periksa isi tabel kategori saat ini.

SELECT * FROM `categories`;

Menjalankan skrip di atas dalam MySQL workbench terhadap myflixdb memberi kita hasil berikut.

category_id category_name remarks
1 Comedy Movies with humour
2 Romantic Love stories
3 Epic Story acient movies
4 Horror NULL
5 Science Fiction NULL
6 Thriller NULL
7 Action NULL
8 Romantic Comedy NULL

Sekarang mari masukkan kategori baru ke dalam tabel kategori.

INSERT INTO  `categories` (`category_name`) VALUES ('Cartoons');

Menjalankan skrip di atas terhadap myflixdb di MySQL meja kerja memberi kita hasil yang ditunjukkan di bawah ini.

category_id category_name remarks
1 Comedy Movies with humour
2 Romantic Love stories
3 Epic Story acient movies
4 Horror NULL
5 Science Fiction NULL
6 Thriller NULL
7 Action NULL
8 Romantic Comedy NULL
9 Cartoons NULL

Perhatikan bahwa kami tidak memberikan id kategori. MySQL secara otomatis membuatnya untuk kami karena id kategori didefinisikan sebagai kenaikan otomatis.

Jika Anda ingin mendapatkan id sisipan terakhir yang dihasilkan oleh MySQL, Anda dapat menggunakan fungsi LAST_INSERT_ID untuk melakukannya. Skrip yang ditunjukkan di bawah ini mendapatkan id terakhir yang dihasilkan.

SELECT LAST_INSERT_ID();

Mengeksekusi skrip di atas memberikan angka Kenaikan otomatis terakhir yang dihasilkan oleh kueri INSERT. Hasilnya ditunjukkan di bawah ini.

MySQL AUTO_INCREMENT

Ringkasan

  • Atribut kenaikan otomatis ketika ditentukan pada kolom dengan tipe data numerik, menghasilkan angka secara berurutan setiap kali baris baru ditambahkan ke dalam database.
  • Kenaikan Otomatis biasanya digunakan untuk menghasilkan kunci utama.
  • Tipe data yang ditentukan pada kenaikan Otomatis harus cukup besar untuk menampung banyak catatan. Mendefinisikan TINYINT sebagai tipe data untuk bidang kenaikan otomatis membatasi jumlah catatan yang dapat ditambahkan ke tabel hanya 255 karena nilai apa pun di luar itu tidak akan diterima oleh tipe data TINYINT.
  • Ini dianggap sebagai praktik yang baik untuk menentukan batasan yang tidak ditandatangani pada kunci utama kenaikan otomatis untuk menghindari angka negatif.
  • Ketika sebuah baris dihapus dari tabel, id yang bertambah secara otomatis tidak digunakan kembali. MySQL terus menghasilkan angka baru secara berurutan.
  • Secara default, nilai awal untuk AUTO_INCREMENT adalah 1, dan akan bertambah 1 untuk setiap record baru
  • Agar urutan AUTO_INCREMENT dimulai dengan nilai lain, gunakan AUTO_INCREMENT = 10