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

Laravel 5 के साथ प्राथमिक कुंजी के रूप में UUID का उपयोग करना

36chr UUID को बाइनरी(16) के रूप में संग्रहीत करने के इस विचार के बारे में कैसे:

आईएमओ एक लारवेल के यूयूआईडी जनरेट न करने का एक फायदा है . अर्थात्, यदि नए रिकॉर्ड (भविष्य में किसी दिन) एप्लिकेशन के बाहर से डेटाबेस में सम्मिलित हो जाते हैं तो UUID फ़ील्ड ठीक से भर जाता है।

मेरा सुझाव:माइग्रेशन का उपयोग करके UUID डिफ़ॉल्ट मान ट्रिगर बनाएं

(यह ट्रिगर डाटाबेस सर्वर को हर बार एक नया ग्राहक डालने पर यूयूआईडी उत्पन्न करने का काम करता है)

<?php namespace MegaBank\HighInterestLoans\Updates;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Database\Migrations\Migration;

class MigrationTriggerForCustomers extends Migration
{
public function up()
    {
    
        DB::unprepared('CREATE TRIGGER before_insert_customers
                      BEFORE INSERT ON    
                    `megabank_highinterestloans_customers` 
                      FOR EACH ROW
                      SET new.uuid = UNHEX(REPLACE(UUID(), "-","");');
    }

    public function down()
    {
        DB::unprepared('DROP TRIGGER `before_insert_customers`');
    }
}

अंत में, यदि आप अपने यूयूआईडी का मानव-पठनीय संस्करण प्राप्त करना चाहते हैं तो बस निम्न कार्य करें:

SELECT HEX(UUID) FROM customers;

वैसे भी, उम्मीद है कि यह किसी की मदद करता है :-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गलत तरीके से एन्कोड किए गए डेटा को UTF-8 में कैसे बदलें?

  2. JDBC - स्टेटमेंट, तैयार स्टेटमेंट, कॉल करने योग्य स्टेटमेंट और कैशिंग

  3. अपने डेटाबेस के लिए MySQL डेटाबेस आकार कैसे प्राप्त करें?

  4. MySQL में LIMIT 1 का उपयोग करना

  5. किसी तालिका की प्राथमिक कुंजी को कैसे रीसेट करें?