क्रेग रिंगर द्वारा जवाब सही है। यहां पोस्टग्रैजेस 9.1 और बाद के लिए थोड़ी अधिक जानकारी दी गई है ...
एक्सटेंशन उपलब्ध है?
आप केवल एक एक्सटेंशन स्थापित कर सकते हैं यदि यह पहले से ही आपके पोस्टग्रेज इंस्टॉलेशन ( पोस्टग्रेज लिंगो में आपका क्लस्टर ) के लिए बनाया गया है । उदाहरण के लिए, मुझे एंटरप्राइज़.कॉम द्वारा प्रदान किए गए कृपया मैक ओएस एक्स के लिए इंस्टॉलर के भाग के रूप में शामिल uuid-ossp एक्सटेंशन मिला । एक में से कोई कुछ दर्जन एक्सटेंशन उपलब्ध हो सकता है।
यह देखने के लिए कि आपके पोस्टग्रेज क्लस्टर में uuid-ossp एक्सटेंशन उपलब्ध है, pg_available_extensions
सिस्टम कैटलॉग को क्वेरी करने के लिए इस SQL को चलाएं :
SELECT * FROM pg_available_extensions;
एक्सटेंशन स्थापित करें
उस Urel पर-आधारित एक्सटेंशन को स्थापित करने के लिए , इस SQL में देखे गए CREATE EXTENSION कमांड का उपयोग करें :
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
खबरदार: मुझे इसके विपरीत एक्सटेंशन नाम के आसपास उद्धरण मार्क वर्णों की आवश्यकता थी, इसके विपरीत प्रलेखन के बावजूद।
SQL मानक समिति या पोस्टग्रेज टीम ने उस आदेश के लिए एक विषम नाम चुना। मेरे दिमाग में, उन्हें "INSTALL EXTENSION" या "USE EXTENSION" जैसा कुछ चुनना चाहिए था।
स्थापना को सत्यापित करें
आप pg_extension
सिस्टम कैटलॉग को क्वेरी करने के लिए इस SQL को चलाकर वांछित डेटाबेस में एक्सटेंशन को सफलतापूर्वक स्थापित कर सकते हैं :
SELECT * FROM pg_extension;
डिफ़ॉल्ट मान के रूप में UUID
अधिक जानकारी के लिए, प्रश्न देखें: Postgres में UUID कॉलम के लिए डिफ़ॉल्ट मान
पुराना रास्ता
उपरोक्त जानकारी पोस्टग्रैजेस 9.1 में जोड़े गए नए एक्सटेंशन फीचर का उपयोग करती है । पिछले संस्करणों में, हमें .sql फ़ाइल में स्क्रिप्ट ढूंढनी और चलाना था । एक्सटेंशन की सुविधा को इंस्टॉलेशन को आसान बनाने के लिए जोड़ा गया था, एक्सटेंशन के उपयोगकर्ता / उपभोक्ता की ओर से कम काम के लिए एक्सटेंशन के निर्माता के लिए थोड़ा अधिक काम करना । अधिक चर्चा के लिए मेरा ब्लॉग पोस्ट देखें ।
UUIDs के प्रकार
वैसे, प्रश्न में कोड फ़ंक्शन को कॉल करता है uuid_generate_v4()
। यह एक प्रकार 4 संस्करण के रूप में जाना जाता है, जहां लगभग 128 बिट्स यादृच्छिक रूप से उत्पन्न होते हैं। हालांकि यह पंक्तियों के छोटे सेट पर सीमित उपयोग के लिए ठीक है, यदि आप टकराव की किसी भी संभावना को समाप्त करना चाहते हैं, तो UUID के दूसरे "संस्करण" का उपयोग करें।
उदाहरण के लिए, मूल संस्करण 1 मेजबान कंप्यूटर के मैक पते को वर्तमान तिथि-समय और एक मनमानी संख्या के साथ जोड़ता है , टकराव की संभावना व्यावहारिक रूप से शून्य है।
अधिक चर्चा के लिए, संबंधित प्रश्न पर मेरा उत्तर देखें ।