皆さんも知っているように、Row(レコード)ロックはInnodbエンジンでサポートされています。 次のsqlがアトミックでありトランザクションであることは間違いありません。は処理中にすべてのテーブルをロックするmysql
update tableA t
set t.oneField = someValue
where t.primaryKey = id
しかし、私は次のような状況で混乱しています(なしWHERE条件)
update tableA t
set t.oneField = someValue
私は、このSQLを実行しながら、テーブル全体をロックするのmysqlますされてお聞きしたいですか? 具体的には、rowAが処理され、mysqlが他の行を処理しているときに、このSQLがまだ処理中にrowAがロックされています? rowBがロックされているかどうかを知るために、ツールまたはSQLコマンドを使用できますか?
私は文書https://dev.mysql.com/doc/refman/5.5/en/innodb-locking.htmlを読んだことがありますが、まだ混乱しています。
可能であれば、私にあなたの結論を説明するための具体的なケースやデモや実験を教えてください。何か私は自分自身でそれを行うことができる何もOK。
ありがとうございます。
どうすれば更新テーブルA がt.oneField = someValueに設定されます。ここで、t.primaryKey in(1,2、......) – jingb