PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Menjeda Eksekusi Pernyataan di PostgreSQL

PostgreSQL menyertakan tiga fungsi yang memungkinkan Anda menunda eksekusi proses server. pelaksanaan suatu pernyataan.

Dengan kata lain, Anda dapat menjalankan pernyataan dan menghentikannya di tengah jalan, sebelum melanjutkan perjalanannya yang menyenangkan.

Ketiga fungsi tersebut adalah:

  • pg_sleep()
  • pg_sleep_for()
  • pg_sleep_until()

Semuanya sangat mirip, tetapi cara kerjanya sedikit berbeda.

Di bawah ini adalah contoh masing-masing.

Contoh – pg_sleep()

pg_sleep() fungsi membuat proses sesi saat ini tidur hingga jumlah detik yang ditentukan telah berlalu.

Anda menentukan detik sebagai argumen. Argumennya adalah nilai presisi ganda , sehingga Anda dapat memberikan pecahan detik jika diperlukan.

\x
SELECT 
  clock_timestamp(),
  pg_sleep(1),
  clock_timestamp(),
  pg_sleep(1),
  clock_timestamp();

Hasil (menggunakan keluaran vertikal):

clock_timestamp | 2020-06-28 16:18:25.645814+10
pg_sleep        |
clock_timestamp | 2020-06-28 16:18:26.706998+10
pg_sleep        |
clock_timestamp | 2020-06-28 16:18:27.768604+10

Contoh – pg_sleep_for()

pg_sleep_for() fungsi adalah fungsi kenyamanan untuk waktu tidur yang lebih besar yang ditentukan sebagai interval.

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 16:20:04.218295+10
pg_sleep_for    |
clock_timestamp | 2020-06-28 16:22:14.222907+10
pg_sleep_for    |
clock_timestamp | 2020-06-28 16:23:19.294483+10

Contoh – pg_sleep_until()

pg_sleep_until() fungsi adalah fungsi kenyamanan fungsi kenyamanan ketika waktu bangun tertentu diinginkan.

SELECT 
  clock_timestamp(),
  pg_sleep_until('today 16:25:15.1234'),
  clock_timestamp();

Hasil (menggunakan keluaran vertikal):

clock_timestamp | 2020-06-28 16:24:28.900319+10
pg_sleep_until  |
clock_timestamp | 2020-06-28 16:25:15.184042+10

Presisi Penundaan

Saat menggunakan fungsi ini, waktu tunda yang sebenarnya dapat bervariasi dari waktu yang ditentukan tergantung pada tingkat aktivitas server. Namun, penundaan tidur setidaknya selama yang ditentukan.

Khususnya, pg_sleep_until tidak dijamin untuk bangun tepat pada waktu yang ditentukan, tetapi tidak akan bangun lebih awal.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. gunakan perintah database_name di PostgreSQL

  2. Cara menangani kesalahan Ruby on Rails:Silakan instal adaptor postgresql:`gem install activerecord-postgresql-adapter'

  3. Mengimpor shapefile di postgresql di linux menggunakan pgadmin 4

  4. Spring + Hibernate:Penggunaan Memori Cache Rencana Kueri

  5. IN vs operator APAPUN di PostgreSQL