测试库一条update语句报错:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
mysql> UPDATE profitloss_collect_form SET ApproveStatus = 2
-> WHERE formcode = 'SY2015111803' AND (
-> SELECT COUNT(8) FROM profitloss_collect_form_detail WHERE formcode = 'SY2015111803' AND checkstatus = 0
-> ) = 0;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
update语句锁超时,一定是产生锁了。
mysql> select * from information_schema.innodb_trxG
*************************** 1. row ***************************
trx_id: 3735875273
trx_state: RUNNING
trx_started: 2015-12-07 16:55:32
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 821
trx_mysql_thread_id: 40566656
trx_query: NULL
trx_operation_state: NULL
trx_tables_in_use: 0
trx_tables_locked: 0
trx_lock_structs: 817
trx_lock_memory_bytes: 95784
trx_rows_locked: 104599
trx_rows_modified: 4
trx_concurrency_tickets: 0
trx_isolation_level: REPEATABLE READ
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 2. row ***************************
trx_id: 3731614168
trx_state: RUNNING
trx_started: 2015-12-07 11:14:59
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 0
trx_mysql_thread_id: 40317084
trx_query: insert into profitloss_collect_form_detail ........
trx_operation_state: NULL
trx_tables_in_use: 1
trx_tables_locked: 0
trx_lock_structs: 0
trx_lock_memory_bytes: 360
trx_rows_locked: 0
trx_rows_modified: 0
trx_concurrency_tickets: 0
trx_isolation_level: REPEATABLE READ
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 10000
trx_is_read_only: 1
trx_autocommit_non_locking: 1
2 rows in set (0.00 sec)
mysql> kill 40317084;