PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách pg_sleep () hoạt động trong PostgreSQL

Trong PostgreSQL, bạn có thể sử dụng pg_sleep() chức năng trì hoãn việc thực thi trong một số giây nhất định.

Nó làm cho quy trình của phiên hiện tại ở chế độ ngủ cho đến khi số giây được chỉ định trôi qua. Nó hoạt động tương tự như sleep() của MySQL và cả waitfor của TSQL trong SQL Server.

pg_sleep() hàm chấp nhận độ chính xác kép đối số, vì vậy bạn cũng có thể chỉ định độ trễ theo phân số-giây.

Thời gian trễ ngủ sẽ ít nhất là miễn là được chỉ định. Tuy nhiên, thời gian có thể lâu hơn tùy thuộc vào các yếu tố như tải máy chủ, cũng như cách giải quyết khoảng thời gian nghỉ hiệu quả của nền tảng của bạn.

Cú pháp

Cú pháp khá đơn giản:

pg_sleep(seconds)

Trong đó seconds độ chính xác kép giá trị chỉ định số giây / giây phân đoạn phải trôi qua trước khi quá trình tiếp tục.

Ví dụ

Dưới đây là một ví dụ để chứng minh cách sử dụng của nó.

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

Kết quả (sử dụng đầu ra dọc):

clock_timestamp | 2020-06-28 13:46:53.808072+10
pg_sleep        |
clock_timestamp | 2020-06-28 13:46:54.870423+10
pg_sleep        |
clock_timestamp | 2020-06-28 13:46:55.938278+10

Tôi đã sử dụng clock_timestamp() trong ví dụ này, vì nó thay đổi trong quá trình thực thi câu lệnh. Điều này cho phép chúng tôi xem các giá trị được cập nhật khi câu lệnh tiến triển.

Tôi đã sử dụng màn hình mở rộng (đôi khi được gọi là "đầu ra theo chiều dọc") trong ví dụ này để giúp bạn dễ dàng xem kết quả hơn.

Bạn có thể chuyển đổi hiển thị mở rộng trong psql bằng cách sử dụng \x .

Giây phân số

Như đã đề cập, bạn có thể chỉ định độ trễ theo phần giây nếu được yêu cầu.

SELECT 
  clock_timestamp(),
  pg_sleep(.5),
  clock_timestamp(),
  pg_sleep(.5),
  clock_timestamp();

Kết quả (sử dụng đầu ra dọc):

clock_timestamp | 2020-06-28 15:03:52.496211+10
pg_sleep        |
clock_timestamp | 2020-06-28 15:03:53.041063+10
pg_sleep        |
clock_timestamp | 2020-06-28 15:03:53.553291+10

Giá trị phủ định

Giá trị âm sẽ không làm chậm quá trình thực thi.

SELECT 
  clock_timestamp(),
  pg_sleep(-1),
  clock_timestamp(),
  pg_sleep(-1),
  clock_timestamp();

Kết quả (sử dụng đầu ra dọc):

clock_timestamp | 2020-06-29 09:03:19.056681+10
pg_sleep        |
clock_timestamp | 2020-06-29 09:03:19.056682+10
pg_sleep        |
clock_timestamp | 2020-06-29 09:03:19.056683+10

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng Mô hình học máy KNN với 2UDA - PostgreSQL và Orange (Phần 1)

  2. Làm cách nào để cập nhật + tham gia vào PostgreSQL?

  3. Cách khử trùng SQL thô trong Rails 4

  4. Truy cập các tệp XML bên ngoài dưới dạng các biến trong tập lệnh PSQL (lấy nguồn từ tập lệnh bash)

  5. postgreSQL - psql \ i:cách thực thi tập lệnh trong một đường dẫn nhất định