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

Menghasilkan string 8 karakter acak &unik menggunakan MySQL

Saya tidak akan repot dengan kemungkinan tabrakan. Buat saja string acak dan periksa apakah ada. Jika ya, coba lagi dan Anda tidak perlu melakukannya lebih dari beberapa kali kecuali Anda memiliki banyak piring yang sudah ditetapkan.

Solusi lain untuk menghasilkan string pseudo-acak panjang 8 karakter dalam SQL (Saya) murni:

SELECT LEFT(UUID(), 8);

Anda dapat mencoba yang berikut (kode semu):

DO 
    SELECT LEFT(UUID(), 8) INTO @plate;
    INSERT INTO plates (@plate);
WHILE there_is_a_unique_constraint_violation
-- @plate is your newly assigned plate number

Karena postingan ini mendapat perhatian yang tidak terduga, izinkan saya menyoroti komentar ADTC :potongan kode di atas cukup bodoh dan menghasilkan digit berurutan.

Untuk keacakan yang sedikit lebih bodoh, cobalah sesuatu seperti ini :

SELECT LEFT(MD5(RAND()), 8)

Dan untuk keacakan yang benar (aman secara kriptografis), gunakan RANDOM_BYTES() daripada RAND() (tetapi kemudian saya akan mempertimbangkan untuk memindahkan logika ini ke lapisan aplikasi).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa melakukan tiga tabel BERGABUNG dalam kueri UPDATE?

  2. Bagaimana cara mengelompokkan berdasarkan minggu di MySQL?

  3. TABEL DROP MySQL

  4. MySQL Errno 150

  5. cara memeriksa dan mengatur variabel mysql max_allowed_packet