テーブル全体UPDATE
(WHERE
句を指定しない)はPostgreSQLのテーブルをロックしますか?たとえば、行が削除または挿入されるのを防ぎますか?
たとえば、実行した場合
、実行中にUPDATE t1 SET key = 'value'
新しい行が挿入されないことを期待できますか?t1
UPDATE
いいえの場合UPDATE
、開始後に表示された行も更新されますか?(キーのDEFAULT 'value'
定義にはありません)
開始後に挿入された場所で行を更新していて、継続的に行を挿入していたプロセスがあった場合、更新ステートメントが終了しないことを意味しませんか?
—
ジョーW
いい視点ね!はい、
—
オリガミナル
UPDATE
新しく挿入された行を更新するような方法で実装することはほとんど不可能です。
いいえ、変更された行のみがロックされます。UPDATEはテーブル全体をロックすることはありません。
—
a_horse_with_no_name