このことは覚えておく理由は、InnoDBの行ロックとロック解除が主キー索引のためのものです。インデックステーブルロックによると、しかし、クエリ場合は、更新Shiqueは、主キーを更新しません。それはない、彼らはデッドロックエラーを報告した条件として、主キーによってインデックスクエリ、自動ロックテーブル、更新Shiqueによってクエリ
解決策:プライマリキーの更新は、同じクエリの条件を使用していない変更の条件は、条件としてクエリの後に主キーを介して取得する必要があります。
エラーの例:
ユーザーがSELECT * FROM WHERE名= "张三"。
UPADTEユーザーSETセックス= "男" 名前= "张三"。
別の顧客にもこの文を訪問し、女性の性転換または未知しようとしたとき、1213年に報告ロックを取得しようとすると、デッドロックが見つかりました。トライ残り
正しい例:
"张三" ユーザー、ID名= SELECT * FROM。
UPADTEユーザーSETセックス=「男性」WHERE ID = ID番号でクエリをチェックしてください。
それは主キーの更新があるので、別のクライアントのインスタントアクセスがあります。この時点で、あなたも、いつものように渡すことができます
INNODB STATUS ENGINE SHOW#ビュー最後のデッドロック
------------------------ LATESTデッドロックが検出されまし ----------------------- -
LATEST下にDETECTED DEADLOCK文は間違っています