簡體   English   中英

PostgreSQL - 讓兩個事務同時運行

[英]PostgreSQL - make two transactions run at the same time

我需要讓兩個會話(兩個文件)同時(同時)運行。 有沒有辦法使用 pg_sleep 或其他一些函數(如“delayExecutionUntil(x_time)”)來做到這一點?

要在(幾乎)完全相同的時間獲得兩個事務,您可以使用at命令在 Linux shell 中同時安排兩次或多次psql調用。

喜歡:

at '08:00 01.12.2012' -f script.sql

(所需的時間戳格式可能取決於您的系統區域設置。)
其中script.sql包含以下內容:

psql mydb -p 5432 -c "INSERT INTO tbl (col) VALUES ('foo');

只是有更多的行來引發您所追求的碰撞..

您可以使用表鎖(請參閱文檔中的LOCK命令)來同步這些內容:

  • 連接“控制器”鎖定實際事務將使用的第一個表。
  • 創建新的“Worker-A”連接並開始您的交易。 它將阻塞在鎖定的桌子上。
  • 創建新的“Worker-B”連接並開始您的交易。 它將阻塞在鎖定的桌子上。
  • “控制器”連接釋放鎖。
  • “Worker-A”和“Worker-B”應該立即開始工作——當然,如果它們的並發設置允許的話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM