2

2つのセッション(2つのファイル)を同時に(同時に)実行する必要があります。pg_sleepまたは「delayExecutionUntil(x_time)」のような他の関数を使用してこれを行う方法はありますか?

4

2 に答える 2

2

(ほぼ)まったく同時に2つのトランザクションを取得するには、コマンドを使用してLinuxシェルで同時に2つ以上のpsqlの呼び出しをスケジュールできます。at

好き:

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

(必要なタイムスタンプの形式は、システムのロケールによって異なる場合があります。)
script.sqlのようなものが含まれています。

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

衝突を誘発するための行がもっとたくさんあるだけで..

于 2012-12-01T20:33:10.873 に答える
1

テーブルロック(LOCKドキュメントのコマンドを参照)を使用して、次のものを同期できます。

  • 接続「コントローラー」は、実際のトランザクションが使用する最初のテーブルをロックします。
  • 新しい「Worker-A」接続を作成し、トランザクションを開始します。ロックされたテーブルでブロックされます。
  • 新しい「Worker-B」接続を作成し、トランザクションを開始します。ロックされたテーブルでブロックされます。
  • 「コントローラ」接続はロックを解除します。
  • 「Worker-A」と「Worker-B」は、同時実行設定で許可されている場合は、すぐに機能を開始する必要があります。
于 2012-12-01T21:53:57.217 に答える