Di PostgreSQL, Anda dapat menggunakan pg_sleep_for()
berfungsi untuk menunda eksekusi untuk interval tertentu.
Itu membuat proses sesi saat ini tidur sampai interval yang ditentukan telah berlalu.
Penundaan tidur akan setidaknya selama yang ditentukan. Namun, ini bisa lebih lama bergantung pada faktor-faktor seperti beban server, serta resolusi efektif interval tidur platform Anda.
Sintaks
Sintaksnya seperti ini:
pg_sleep_for(interval)
Dimana interval
adalah interval yang menentukan interval sebelum proses berlanjut.
Contoh
Berikut ini contoh untuk mendemonstrasikan penggunaannya.
\x
SELECT
clock_timestamp(),
pg_sleep_for('2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('1 minute 5 seconds'),
clock_timestamp();
Hasil (menggunakan keluaran vertikal):
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
Saya menggunakan clock_timestamp()
dalam contoh ini, karena berubah selama eksekusi pernyataan. Hal ini memungkinkan kami untuk melihat nilai yang diperbarui seiring perkembangan pernyataan.
Saya menggunakan tampilan yang diperluas (kadang-kadang disebut sebagai "output vertikal") dalam contoh ini untuk memudahkan melihat hasilnya.
Anda dapat mengaktifkan tampilan yang diperluas di psql dengan menggunakan \x
.
Nilai Negatif
Memberikan nilai negatif akan membuat pernyataan langsung berjalan.
SELECT
clock_timestamp(),
pg_sleep_for('-2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('-1 minute 5 seconds'),
clock_timestamp();
Hasil (menggunakan keluaran vertikal):
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