Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

MySQL memiliki kata kunci AUTO_INCREMENT untuk melakukan peningkatan otomatis. Nilai awal untuk AUTO_INCREMENT adalah 1, yang merupakan nilai default. Itu akan mendapatkan kenaikan sebesar 1 untuk setiap rekor baru

Untuk mendapatkan id auto increment berikutnya di MySQL, kita bisa menggunakan fungsi last_insert_id() dari MySQL atau auto_increment dengan SELECT

Membuat tabel, dengan "id" sebagai penambahan otomatis

mysql> create table NextIdDemo
   -> (
   -> id int auto_increment,
   -> primary key(id)
   -> );
Query OK, 0 rows affected (1.31 sec)

Memasukkan record ke dalam tabel

mysql> insert into NextIdDemo values(1);
Query OK, 1 row affected (0.22 sec)

mysql>  insert into NextIdDemo values(2);
Query OK, 1 row affected (0.20 sec)

mysql>  insert into NextIdDemo values(3);
Query OK, 1 row affected (0.14 sec)
_

Untuk menampilkan semua catatan

mysql> select *from NextIdDemo;

Berikut ini adalah outputnya

+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.04 sec)

Kami telah memasukkan 3 catatan di atas. Oleh karena itu, id berikutnya harus 4

Berikut ini adalah sintaks untuk mengetahui id selanjutnya

SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "yourDatabaseName"
AND TABLE_NAME = "yourTableName"
_

Berikut kuerinya

mysql> SELECT AUTO_INCREMENT
    -> FROM information_schema.TABLES
    -> WHERE TABLE_SCHEMA = "business"
    -> AND TABLE_NAME = "NextIdDemo";

Ini adalah output yang menampilkan peningkatan otomatis berikutnya

+----------------+
| AUTO_INCREMENT |
+----------------+
|              4 |
+----------------+
1 row in set (0.25 sec)
_

Bagaimana cara saya menghasilkan angka secara otomatis di mysql?


Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

Ringkasan. dalam tutorial ini, Anda akan belajar bagaimana menggunakan urutan MySQL untuk secara otomatis menghasilkan nomor unik untuk kolom tabel ID

Membuat urutan MySQL

Di MySQL, urutan adalah daftar bilangan bulat yang dihasilkan dalam urutan naik i. e. , 1,2,3… Banyak aplikasi membutuhkan urutan untuk menghasilkan nomor unik terutama untuk identifikasi e. g. , ID pelanggan di CRM, nomor karyawan di SDM, dan nomor peralatan di sistem manajemen layanan

Untuk membuat urutan di MySQL secara otomatis, Anda mengatur atribut AUTO_INCREMENT untuk kolom, yang biasanya adalah kolom kunci utama

Aturan berikut diterapkan saat Anda menggunakan atribut AUTO_INCREMENT

  • Setiap tabel hanya memiliki satu kolom AUTO_INCREMENT yang tipe datanya biasanya bilangan bulat
  • Kolom  AUTO_INCREMENT harus diindeks, artinya dapat berupa indeks

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    2 atau

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    3
  • Kolom AUTO_INCREMENT harus memiliki batasan 

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    5. Saat Anda menyetel atribut AUTO_INCREMENT ke kolom, MySQL secara otomatis menambahkan batasan 

    INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

    Code language: SQL (Structured Query Language) (sql)
    5  ke kolom secara implisit

Membuat contoh urutan MySQL

Pernyataan berikut membuat tabel bernama 

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
8 yang memiliki kolom 

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
9 adalah kolom AUTO_INCREMENT

CREATE TABLE employees ( emp_no INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50) );

Code language: SQL (Structured Query Language) (sql)

Bagaimana urutan MySQL bekerja

Kolom AUTO_INCREMENT memiliki atribut berikut

  • Nilai awal kolom AUTO_INCREMENT adalah 1 dan bertambah 1 saat Anda memasukkan nilai 

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    3 ke dalam kolom atau saat Anda menghilangkan nilainya dalam pernyataan

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    4
  • Untuk mendapatkan nomor urut yang dibuat terakhir, Anda menggunakan fungsi

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    5 . Kami sering menggunakan ID sisipan terakhir untuk pernyataan selanjutnya e. g. , masukkan data ke dalam tabel. Urutan yang dihasilkan terakhir bersifat unik di seluruh sesi. Dengan kata lain, jika sambungan lain menghasilkan nomor urut, dari sambungan Anda, Anda dapat memperolehnya dengan menggunakan fungsi

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    6
  • Jika Anda memasukkan baris baru ke dalam tabel dan menentukan nilai untuk kolom urut, MySQL akan memasukkan nomor urut jika nomor urut tidak ada di kolom atau mengeluarkan kesalahan jika sudah ada. Jika Anda memasukkan nilai baru yang lebih besar dari nomor urut berikutnya, MySQL akan menggunakan nilai baru sebagai nomor urut awal dan menghasilkan nomor urut unik yang lebih besar dari yang sekarang untuk penggunaan berikutnya. Ini menciptakan celah dalam urutan
  • Jika Anda menggunakan pernyataan

    SELECT * FROM employees;

    Code language: SQL (Structured Query Language) (sql)
    7 untuk memperbarui nilai di kolom AUTO_INCREMENT ke nilai yang sudah ada, MySQL akan mengeluarkan kesalahan kunci duplikat jika kolom memiliki indeks unik. Jika Anda memperbarui kolom AUTO_INCREMENT ke nilai yang lebih besar dari nilai yang ada di kolom, MySQL akan menggunakan nomor berikutnya dari nomor urut penyisipan terakhir untuk baris berikutnya. Misalnya, jika nomor urut yang terakhir dimasukkan adalah 3, Anda memperbaruinya menjadi 10, nomor urut untuk baris baru adalah 4
  • Jika Anda menggunakan pernyataan

    DELETE FROM employees WHERE emp_no = 2;

    Code language: SQL (Structured Query Language) (sql)
    _0 untuk menghapus baris yang dimasukkan terakhir, MySQL mungkin atau mungkin tidak menggunakan kembali nomor urut yang dihapus tergantung pada mesin penyimpanan tabel. Tabel MyISAM tidak menggunakan kembali nomor urut yang dihapus jika Anda menghapus baris e. g. , id sisipan terakhir dalam tabel adalah 10, jika Anda menghapusnya, MySQL masih menghasilkan nomor urut berikutnya yaitu 11 untuk baris baru. Mirip dengan tabel MyISAM, tabel InnoDB tidak menggunakan kembali nomor urut saat baris dihapus

Setelah Anda menetapkan atribut AUTO_INCREMENT untuk kolom, Anda dapat menyetel ulang nilai kenaikan otomatis dengan berbagai cara e. g. , dengan menggunakan pernyataan

DELETE FROM employees WHERE emp_no = 2;

Code language: SQL (Structured Query Language) (sql)
_2

Mari kita lihat beberapa contoh untuk mendapatkan pemahaman yang lebih baik tentang urutan MySQL

Pertama, masukkan dua baris baru ke dalam tabel

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
8

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)

Kedua, pilih data dari tabel

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
_8

SELECT * FROM employees;

Code language: SQL (Structured Query Language) (sql)
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

Ketiga, hapus karyawan kedua yang

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
9 adalah 2

DELETE FROM employees WHERE emp_no = 2;

Code language: SQL (Structured Query Language) (sql)
_
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

Keempat, masukkan karyawan baru.

INSERT INTO employees(first_name,last_name) VALUES('Jack','Lee');

Code language: SQL (Structured Query Language) (sql)
_
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

Karena mesin penyimpanan dari tabel

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
8 adalah InnoDB, itu tidak menggunakan kembali nomor urut yang dihapus. Baris baru memiliki

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
9  3.

Kelima, perbarui karyawan yang ada dengan

INSERT INTO employees(first_name,last_name) VALUES('John','Doe'), ('Mary','Jane');

Code language: SQL (Structured Query Language) (sql)
9 3 ke 1

UPDATE employees SET first_name = 'Joe', emp_no = 1 WHERE emp_no = 3;

Code language: SQL (Structured Query Language) (sql)

MySQL mengeluarkan kesalahan entri duplikat untuk kunci utama. Mari kita perbaiki

UPDATE employees SET first_name = 'Joe', emp_no = 10 WHERE emp_no = 3;

Code language: SQL (Structured Query Language) (sql)
_
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

Keenam, masukkan pegawai baru setelah memperbarui nomor urut menjadi 10.

INSERT INTO employees(first_name,last_name) VALUES('Wang','Lee');

Code language: SQL (Structured Query Language) (sql)
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?
Bagaimana cara saya menghasilkan angka secara otomatis di mysql?

Nomor urut selanjutnya dari penyisipan terakhir adalah nomor 4, oleh karena itu, MySQL menggunakan nomor 4 untuk baris baru, bukan 11.

Dalam tutorial ini, Anda telah mempelajari cara menggunakan urutan MySQL untuk menghasilkan angka unik untuk kolom kunci utama dengan menetapkan atribut AUTO_INCREMENT ke kolom

Apakah MySQL mendukung pembuatan angka secara otomatis?

Untuk memastikannya unik untuk setiap baris, Anda dapat menyetel bidang Kunci Utama Penambahan Otomatis MySQL dengan menggunakan Fitur Penambahan Otomatis. Ini memungkinkan MySQL untuk secara otomatis menghasilkan nilai numerik unik berurutan setiap kali baris baru disisipkan .

Bagaimana cara menghasilkan nomor otomatis dalam SQL?

MS SQL Server menggunakan kata kunci IDENTITY untuk menjalankan fitur peningkatan otomatis . Pada contoh di atas, nilai awal untuk IDENTITY adalah 1, dan akan bertambah 1 untuk setiap record baru. Tip. Untuk menentukan bahwa kolom "Personid" harus dimulai dari nilai 10 dan bertambah 5, ubah ke IDENTITY(10,5).

Bagaimana cara menghasilkan 1 hingga 100 angka di MySQL?

Untuk menghasilkan rentang angka di MySQL, Anda dapat menggunakan stored procedure . Pertama, kita perlu membuat tabel. Setelah itu, kita akan membuat stored procedure yang menghasilkan range angka dari 10 sampai 1. Setelah itu kita perlu memanggil stored procedure yang mengisi range angka di tabel.

Bagaimana cara mendapatkan nilai kenaikan otomatis di MySQL?

Untuk memanggil metode dan mendapatkan MySql AUTO_INCREMENT cukup gunakan yang berikut ini. $auto_increment = \App\Helpers\Database. getAutoIncrementValue(env('DB_DATABASE'), 'your_table_name'); . Simpan jawaban ini