PostgreSQL में, आप pg_sleep_for()
. का उपयोग कर सकते हैं किसी दिए गए अंतराल के लिए निष्पादन में देरी करने के लिए कार्य।
यह वर्तमान सत्र की प्रक्रिया को तब तक सुप्त अवस्था में रखता है जब तक कि निर्दिष्ट अंतराल समाप्त नहीं हो जाता।
नींद में देरी कम से कम होगी जब तक निर्दिष्ट है। हालांकि, यह सर्वर लोड जैसे कारकों के साथ-साथ आपके प्लेटफ़ॉर्म के स्लीप इंटरवल के प्रभावी समाधान के आधार पर लंबा हो सकता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
pg_sleep_for(interval)
जहां interval
एक अंतराल है जो प्रक्रिया जारी रहने से पहले अंतराल को निर्दिष्ट करता है।
उदाहरण
इसके उपयोग को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
\x
SELECT
clock_timestamp(),
pg_sleep_for('2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('1 minute 5 seconds'),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-06-28 15:14:26.53039+10 pg_sleep_for | clock_timestamp | 2020-06-28 15:16:36.595837+10 pg_sleep_for | clock_timestamp | 2020-06-28 15:17:41.671152+10
मैंने clock_timestamp()
का उपयोग किया है इस उदाहरण में, क्योंकि यह कथन निष्पादन के दौरान बदलता है। यह हमें स्टेटमेंट के आगे बढ़ने पर अपडेट किए गए मानों को देखने की अनुमति देता है।
मैंने इस उदाहरण में विस्तारित प्रदर्शन (कभी-कभी "ऊर्ध्वाधर आउटपुट" के रूप में संदर्भित) का उपयोग किया ताकि परिणाम देखना आसान हो सके।
आप \x
. का उपयोग करके psql में विस्तारित डिस्प्ले को टॉगल कर सकते हैं ।
नकारात्मक मान
ऋणात्मक मान प्रदान करने के परिणामस्वरूप स्टेटमेंट तुरंत चल जाएगा।
SELECT
clock_timestamp(),
pg_sleep_for('-2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('-1 minute 5 seconds'),
clock_timestamp();
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
clock_timestamp | 2020-06-29 09:01:09.468232+10 pg_sleep_for | clock_timestamp | 2020-06-29 09:01:09.468291+10 pg_sleep_for | clock_timestamp | 2020-06-29 09:01:09.468297+10