jul*_*icz 10 sql database postgresql locking relational-database
我想了解使用"FOR UPDATE"与"JOIN"相关的确切语义.它是否只锁定了有效用于构建最终结果的所有行?它还能做些什么吗?
从这个主题:
http://postgresql.1045698.n5.nabble.com/Select-For-Update-and-Left-Outer-Join-td4363154.html
我知道数据库实现之间存在一些重要的差异.但是我不确定.我对任何流行的RDBMS的行为感兴趣,特别是PostgreSQL.
小智 16
你说得对.在带有JOIN的"SELECT FOR UPDATE"中,将锁定对返回行有贡献的所有行.您可以通过向"FOR UPDATE"添加"OF table_a"来更改此行为,以便仅锁定table_a中的行.您可以在Postgres文档中阅读有关此内容的更多信息:
http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-FOR-UPDATE-SHARE