नहीं, PHP को सटीक उसी UUID()
को MySQL के रूप में उत्पन्न करना संभव नहीं है क्योंकि यह एक (पूरी तरह से) यादृच्छिक संख्या है।
ऐसा लगता है कि आप अपनी समस्या यह है कि आप MySQL में UUID()
का उपयोग करना पसंद करते हैं लेकिन यह पता लगाने के लिए कोई अतिरिक्त क्वेरी निष्पादित नहीं करना चाहते कि नया UUID
क्या है।
तो PHP UUID
क्यों नहीं बनाते हैं ताकि आपके INSERT
क्वेरी में प्राथमिक कुंजी के रूप में उपयोग किया जा सके ?? This comment on php.net आपको यह दिखाना चाहिए कि यह कैसे करें।
का उपयोग करते हुए उन नमूना कार्य:
$uuid = UUID::v4();
$sql = "INSERT INTO mytable (uuid, foo) VALUES ('{$uuid}', 'bar');";
echo "The UUID is: ". $uuid;
संपादित: वहाँ जो UUID
रों के विभिन्न प्रकार उत्पन्न उस पृष्ठ पर कई विधियां हैं। v4
छद्म-यादृच्छिक है, लेकिन आप एक अलग संस्करण का उपयोग कर सकते हैं या अपना खुद का UUID
जनरेटर बना सकते हैं।
स्रोत
2012-02-21 16:12:00
हम्म, इस विधि का उपयोग करके, मुझे यह जांचना होगा कि यह MySQL में एक अद्वितीय यूयूआईडी है, और यदि यह सर्वरों में अद्वितीय है। ऐसा लगता है कि एक अतिरिक्त चेक-फॉर-अनन्य या डेटा पुल हर तरह की आवश्यकता है? – ina
यदि आप यादृच्छिक रूप से जेनरेट किए गए यूयूआईडी का उपयोग करते हैं, तो आपको यह समस्या नहीं होगी। सांख्यिकीय रूप से, यदि आपने 100 वर्षों के लिए ** 1 अरब ** यूयूआईडी ** हर सेकेंड ** उत्पन्न किया है, तो केवल 50% मौका है कि ** उनमें से केवल एक ** टकराएगा। (स्रोत: http://en.wikipedia.org/wiki/Universally_unique_identifier#Random_UUID_probability_of_duplicates) हालांकि आप कभी भी टक्कर नहीं देख पाएंगे, फिर भी यह यूयूआईडी को MySQL में प्राथमिक कुंजी बनाने और सर्वर को नियमित रूप से सिंक करने के लिए स्मार्ट होगा। –