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

मैं Postgres में किसी तालिका में प्रति रिकॉर्ड एक अद्वितीय स्ट्रिंग कैसे उत्पन्न कर सकता हूं?

मैं दावा नहीं करता कि निम्नलिखित कुशल हैं, लेकिन इस तरह हमने अतीत में इस तरह का काम किया है।

CREATE FUNCTION make_uid() RETURNS text AS $$
DECLARE
    new_uid text;
    done bool;
BEGIN
    done := false;
    WHILE NOT done LOOP
        new_uid := md5(''||now()::text||random()::text);
        done := NOT exists(SELECT 1 FROM my_table WHERE uid=new_uid);
    END LOOP;
    RETURN new_uid;
END;
$$ LANGUAGE PLPGSQL VOLATILE;

make_uid() my_table . में कॉलम के लिए डिफ़ॉल्ट के रूप में इस्तेमाल किया जा सकता है . कुछ इस तरह:

ALTER TABLE my_table ADD COLUMN uid text NOT NULL DEFAULT make_uid();

md5(''||now()::text||random()::text) स्वाद के लिए समायोजित किया जा सकता है। आप encode(...,'base64') . पर विचार कर सकते हैं बेस-64 में उपयोग किए गए कुछ वर्णों को छोड़कर URL अनुकूल नहीं हैं।



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

  2. पोस्टग्रेज:समग्र कुंजी कैसे करें?

  3. Postgres - 2 ARRAYs के प्रतिच्छेदन को वापस करने का कार्य?

  4. रेल:ओएस एक्स पर पीजी रत्न स्थापित करना - मूल विस्तार बनाने में विफलता

  5. PgBouncer के साथ PostgreSQL कनेक्शन पूलिंग