Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara tercepat untuk menghasilkan 11.000.000 id unik

Jika Anda membuat tabel berikut:

 CREATE TABLE sequence (
     sequence_id BIGINT NOT NULL AUTO_INCREMENT,
     PRIMARY KEY (`sequence_id`)
) 

Kemudian keluarkan tiga pertanyaan ini satu demi satu:

INSERT INTO sequence () VALUES ();
DELETE FROM sequence WHERE sequence_id < LAST_INSERT_ID();
SELECT LAST_INSERT_ID() AS sequence;

Kueri ketiga dijamin untuk mengembalikan nomor urut yang unik. Jaminan ini berlaku bahkan jika Anda memiliki lusinan program klien berbeda yang terhubung ke database Anda. Itulah keindahan AUTO_INCREMENT.

Alih-alih hanya menghasilkan sebelas juta nomor urut ini di muka, Anda dapat menggunakan kueri SQL ini untuk mendapatkan nomor urut unik kapan pun Anda membutuhkannya.

Jika Anda harus membungkus di urutan nomor 12 juta, Anda dapat menggunakan kueri ini sebagai gantinya.

INSERT INTO sequence () VALUES ();
DELETE FROM sequence WHERE sequence_id < LAST_INSERT_ID();
SELECT LAST_INSERT_ID() MOD 12000000 AS sequence;

Triknya di sini adalah menggunakan nomor urut kenaikan otomatis untuk keunikan, tetapi juga menghapus baris dalam tabel sehingga tidak memakan banyak ruang.

Perhatikan bahwa Anda juga dapat menggunakan nomor urut LAST_INSERT_ID() untuk tujuan lain, seperti misalnya.

INSERT INTO sequence () VALUES ();
DELETE FROM sequence WHERE sequence_id < LAST_INSERT_ID();
INSERT INTO user (userid, username, phone) 
          VALUES (LAST_INSERT_ID() MOD 12000000, 'Joe', '800-555-1212');
SELECT LAST_INSERT_ID() MOD 12000000 AS sequence;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi masalah Query dengan Informix

  2. Bagaimana cara mendapatkan kata sandi MySQL saya yang terlupa dari MySQL Workbench di macOS?

  3. Terapkan Database MySQL Cloud Hybrid menggunakan ClusterControl

  4. SQL JIKA PILIH kueri adalah nol lalu lakukan kueri lain

  5. Cara Menemukan Hari Terakhir dalam Bulan untuk Tanggal yang Diberikan di MySQL