Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL का उपयोग करके एक यादृच्छिक और अद्वितीय 8 वर्ण स्ट्रिंग उत्पन्न करना

मैं टकराव की संभावना से परेशान नहीं होगा। बस एक यादृच्छिक स्ट्रिंग उत्पन्न करें और जांचें कि यह मौजूद है या नहीं। यदि ऐसा होता है, तो फिर से प्रयास करें और आपको इसे एक-दो बार और अधिक करने की आवश्यकता नहीं है, जब तक कि आपके पास पहले से ही बड़ी संख्या में प्लेटों को असाइन न किया गया हो।

शुद्ध (My)SQL में 8-वर्ण लंबी छद्म-यादृच्छिक स्ट्रिंग उत्पन्न करने का एक अन्य समाधान:

SELECT LEFT(UUID(), 8);

आप निम्न कोशिश कर सकते हैं (छद्म कोड):

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

चूंकि इस पोस्ट को एक अप्रत्याशित स्तर का ध्यान मिला है, इसलिए मैं एडीटीसी की टिप्पणी :कोड का उपरोक्त भाग काफी गूंगा है और अनुक्रमिक अंक उत्पन्न करता है।

थोड़ी कम बेवकूफी के लिए इसके बजाय कुछ इस तरह की कोशिश करें:

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

और सही (क्रिप्टोग्राफिक रूप से सुरक्षित) यादृच्छिकता के लिए, RANDOM_BYTES() का उपयोग करें के बजाय RAND() (लेकिन तब मैं इस तर्क को अनुप्रयोग परत तक ले जाने पर विचार करूंगा)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIME_FORMAT () उदाहरण – MySQL

  2. PostgreSQL बनाम MySQL

  3. MySQL में लूप उदाहरण के लिए

  4. दो संभावित तालिकाओं में से एक के लिए एक MySQL विदेशी कुंजी करना संभव है?

  5. कैसे mysql में हर इसी महीने का पहला दिन पाने के लिए?