आप जो चाहते हैं उसके करीब कुछ हासिल करने के लिए यहां एक कार्यशील समाधान दिया गया है:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
uuid VARCHAR DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )
);
INSERT INTO foo ( ts ) VALUES ( now() );
लेकिन (और यह एक बड़ा लेकिन है ) यहां हम uuid
. कन्वर्ट करते हैं एक string
. के लिए इसका मतलब है कि सूचकांक स्वयं किसी संख्या या वास्तविक uuid
. से कहीं अधिक महंगा होगा ।
इस लेख में आप एक अच्छी व्याख्या पा सकते हैं:
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
जहां तक मुझे पता है, पोस्टग्रेज 'uuid
हाइफ़न का उपयोग करता है, भले ही आप उन्हें हटाने का प्रयास करें:
CREATE TABLE foo (
ts TIMESTAMP WITH TIME ZONE,
queue UUID DEFAULT REPLACE(uuid_generate_v4()::text, '-', '' )::uuid,
);
INSERT INTO foo ( ts ) VALUES ( now() );
ऊपर दिया गया उदाहरण Postgres 9.6 में ठीक काम करता है, लेकिन जब हम uuid
पर वापस आते हैं हाइफ़न वापस जोड़े जाते हैं।