INNODB_LOCKS
Each transaction in InnoDB that is waiting for another transaction to release a lock (INNODB_TRX.TRX_STATE='LOCK WAIT'
) is blocked by exactly one "blocking lock request". That blocking lock request is for a row or table lock held by another transaction in an incompatible mode. The waiting or blocked transaction cannot proceed until the other transaction commits or rolls back, thereby releasing the requested lock. For every blocked transaction, INNODB_LOCKS
contains one row that describes each lock the transaction has requested, and for which it is waiting. INNODB_LOCKS
also contains one row for each lock that is blocking another transaction, whatever the state of the transaction that holds the lock ('RUNNING'
, 'LOCK WAIT'
, 'ROLLING BACK'
or 'COMMITTING'
). The lock that is blocking a transaction is always held in a mode (read vs. write, shared vs. exclusive) incompatible with the mode of requested lock.
For the table definition, see Table 18.4, "INNODB_LOCKS
Columns".