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

कैसे pg_sleep_until() PostgreSQL में काम करता है

PostgreSQL में, आप pg_sleep_until() . का उपयोग कर सकते हैं निर्दिष्ट टाइमस्टैम्प तक निष्पादन में देरी करने के लिए कार्य करता है।

यह तब उपयोगी होता है जब एक विशिष्ट वेक-अप समय वांछित होता है।

ध्यान दें कि pg_sleep_until निश्चित समय पर जागने की गारंटी नहीं है, लेकिन यह पहले नहीं जागेगा।

सिंटैक्स

वाक्य रचना इस प्रकार है:

pg_sleep_until(timestamp with time zone)

उदाहरण

इसके उपयोग को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।

\x
SELECT 
  clock_timestamp(),
  pg_sleep_until('today 15:30'),
  clock_timestamp();

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

clock_timestamp | 2020-06-28 15:29:54.564608+10
pg_sleep_until  |
clock_timestamp | 2020-06-28 15:30:00.0119+10

मैंने clock_timestamp() का उपयोग किया है इस उदाहरण में, क्योंकि यह कथन निष्पादन के दौरान बदलता है। यह हमें स्टेटमेंट के आगे बढ़ने पर अपडेट किए गए मानों को देखने की अनुमति देता है।

मैंने इस उदाहरण में विस्तारित प्रदर्शन (कभी-कभी "ऊर्ध्वाधर आउटपुट" के रूप में संदर्भित) का उपयोग किया ताकि परिणाम देखना आसान हो सके।

आप \x . का उपयोग करके psql में विस्तारित डिस्प्ले को टॉगल कर सकते हैं ।

उदाहरण 2

यहां एक और उदाहरण दिया गया है, इस बार pg_sleep_until() पर एक अतिरिक्त कॉल के साथ और clock_timestamp()

SELECT 
  clock_timestamp(),
  pg_sleep_until('today 15:32'),
  clock_timestamp(),
  pg_sleep_until('today 15:33'),
  clock_timestamp();

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

clock_timestamp | 2020-06-28 15:31:23.142358+10
pg_sleep_until  |
clock_timestamp | 2020-06-28 15:32:00.061566+10
pg_sleep_until  |
clock_timestamp | 2020-06-28 15:33:00.074381+10

उदाहरण 3

इस उदाहरण में, मैं स्पष्ट रूप से दिनांक/समय और समय क्षेत्र ऑफ़सेट निर्दिष्ट करता हूँ।

साथ ही, मैं पहली टाइमस्टैम्प पास होने के बाद क्वेरी चलाता हूं। इसलिए यह तुरंत चलता है।

SELECT 
  clock_timestamp(),
  pg_sleep_until('2020-06-29 08:54:00.000000+10'),
  clock_timestamp(),
  pg_sleep_until('2020-06-29 08:55:00.000000+10'),
  clock_timestamp();

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

clock_timestamp | 2020-06-29 08:54:17.189189+10
pg_sleep_until  |
clock_timestamp | 2020-06-29 08:54:17.189196+10
pg_sleep_until  |
clock_timestamp | 2020-06-29 08:55:00.062783+10

जैसा कि परिणाम दिखाता है, मैंने पहले pg_sleep_until() के 17 सेकंड बाद तक क्वेरी चलाना शुरू नहीं किया था मान, और इसलिए यह तुरंत चला और चलने के समय टाइमस्टैम्प का उपयोग किया।

इन उदाहरणों में मेरे टाइमस्टैम्प सभी त्वरित उत्तराधिकार में थे, क्योंकि मैं इस लेख को अपडेट करने के लिए घंटों या दिनों का इंतजार नहीं करना चाहता था। लेकिन यदि आवश्यक हो तो आप आगे बढ़ सकते हैं और एक अलग तिथि निर्दिष्ट कर सकते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP BY क्वेरी के साथ प्रतिशत की गणना

  2. WHERE क्लॉज में संदर्भ उपनाम

  3. Python में SSH टनलिंग के माध्यम से PostgreSQL डेटाबेस से कनेक्ट करना

  4. PostgreSQL डेटाबेस में सभी ट्रिगर्स को सूचीबद्ध करने के 2 तरीके

  5. plpgsql में ट्रिगर फ़ंक्शन में एकाधिक कॉलम अपडेट करें