जवाबों:
दिए गए कॉलम के लिए UUID बनाने के लिए डालने से पहले बस एक ट्रिगर बनाएं ।
CREATE TRIGGER before_insert_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
SET new.LogID = uuid();
UUID () अभिव्यक्ति एक UUID जब कहा जाता है उत्पन्न करता है।
दुर्भाग्य से (AFAIK वैसे भी) MySQL अभिव्यक्ति को एक क्षेत्र के लिए डिफ़ॉल्ट मान के रूप में अनुमति नहीं देगा। चारों ओर एक काम के रूप में, आप हमेशा फ़ील्ड को डिफ़ॉल्ट रूप से सेट कर सकते हैं और एक ट्रिगर है जो सम्मिलित करने पर UUID के साथ फ़ील्ड को अपडेट करता है।
मुझे पूरा यकीन है कि आप अभी भी वास्तव में नहीं कर सकते । मैं गंभीरता से एक UUID को प्राथमिक कुंजी के रूप में उपयोग करने पर विचार नहीं करूंगा , इसके बजाय एक स्लिमर, अच्छे डेटा प्रकार का उपयोग कर रहा हूं INT
। आप अपने UUID को एक अलग कॉलम के रूप में जोड़ सकते हैं और इसे अपडेट कर सकते हैं TRIGGER
, यदि वह आपको सूट करता है।
SELECT LENGTH(UNHEX(REPLACE(UUID(),'-','')))
= 16 बाइट्स बाइनरी। अभी भी बड़ा है INT
लेकिन इससे ज्यादा बेहतर हैVARCHAR(36)