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

कैसे सेटसीड () PostgreSQL में काम करता है

PostgreSQL में, setseed() फ़ंक्शन बाद के लिए बीज सेट करता है random() कॉल (-1.0 और 1.0 के बीच का मान, समावेशी)।

random() फ़ंक्शन एक सरल रेखीय सर्वांगसम एल्गोरिथम का उपयोग करके एक छद्म-यादृच्छिक संख्या उत्पन्न करता है।

अगर setseed() कहा जाता है, बाद के random() . के परिणाम setseed() . को फिर से जारी करके मौजूदा सत्र में कॉल दोहराए जा सकते हैं उसी तर्क के साथ।

उदाहरण

यह कैसे काम करता है, यह दिखाने के लिए यहां एक उदाहरण दिया गया है।

SELECT 
  setseed(0.8),
  random(), 
  random();

परिणाम:

 setseed | random             | random
---------+--------------------+--------------------
         | 0.7998745861323613 | 0.9776304992484732

अब, यदि मैं वही कथन दोबारा चलाता हूं, तो मुझे बिल्कुल वही परिणाम मिलता है:

 setseed | random             | random
---------+--------------------+--------------------
         | 0.7998745861323613 | 0.9776304992484732

स्पष्ट होने के लिए, मेरे टर्मिनल में पूरा आउटपुट यहां दिया गया है जब मैं SELECT both दोनों को चलाता हूं एक ही समय में बयान।

SELECT 
  setseed(0.8),
  random(), 
  random();

SELECT 
  setseed(0.8),
  random(), 
  random();

परिणाम:

postgres=# SELECT 
postgres-#   setseed(0.8),
postgres-#   random(), 
postgres-#   random();
 setseed |       random       |       random       
---------+--------------------+--------------------
         | 0.7998745861323613 | 0.9776304992484732
(1 row)


postgres=# 
postgres=# SELECT 
postgres-#   setseed(0.8),
postgres-#   random(), 
postgres-#   random();
 setseed |       random       |       random       
---------+--------------------+--------------------
         | 0.7998745861323613 | 0.9776304992484732
(1 row)

सेटसीड के बिना उदाहरण ()

अब यहां बताया गया है कि यदि मैं दोनों कथनों को फिर से चलाता हूं, लेकिन setseed() . के बिना क्या होता है? समारोह।

SELECT 
  random(), 
  random();

SELECT 
  random(), 
  random();

परिणाम:

postgres=# SELECT 
postgres-#   random(), 
postgres-#   random();
       random       |       random       
--------------------+--------------------
 0.8789931563830109 | 0.8981750563441189
(1 row)


postgres=# 
postgres=# SELECT 
postgres-#   random(), 
postgres-#   random();
       random       |      random       
--------------------+-------------------
 0.3630186384623926 | 0.909389353037664
(1 row)

तो इस मामले में, दूसरे कथन ने यादृच्छिक संख्याओं का एक नया सेट तैयार किया।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एटलसियन बिटबकेट के साथ PostgreSQL संस्करण नियंत्रण

  2. मावेरिक्स के साथ मेरे मैक पर पीजी रत्न स्थापित करना असंभव है

  3. एक बाइट के रूप में PostgreSQL में हेक्स के साथ टेक्स्ट स्ट्रिंग सम्मिलित करना

  4. pg_restore चलाते समय फ़ाइल हेडर में [संग्रहकर्ता] असमर्थित संस्करण (1.13) प्राप्त करना

  5. Postgres-XL 9.6 . में नया क्या है?