###############session 1###############MySQL [test]> create table t1(seat_id int, state int, primary key(seat_id)) engine=innodb;Query OK, 0 rows affected (0.03 sec)MySQL [test]> INSERT INTO t1 VALUES(1,0), (2,0), (3,0), (4,0);Query OK, 4 rows affected (0.01 sec)Records: 4 Duplicates: 0 Warnings: 0MySQL [test]> begin;Query OK, 0 rows affected (0.01 sec)MySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR SHARE;+---------+-------+| seat_id | state |+---------+-------+| 1 | 0 || 2 | 0 |+---------+-------+2 rows in set (0.00 sec)###############session 2###############MySQL [test]> SET SESSION innodb_lock_wait_timeout=1;Query OK, 0 rows affected (0.00 sec)MySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR UPDATE;ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transactionMySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR UPDATE NOWAIT;ERROR 5010 (HY000): Do not wait for lock.MySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR UPDATE SKIP LOCKED;+---------+-------+| seat_id | state |+---------+-------+| 3 | 0 || 4 | 0 |+---------+-------+2 rows in set (0.00 sec)MySQL [test]> SELECT * FROM t1 WHERE seat_id > 0 LIMIT 2 FOR UPDATE NOWAIT;ERROR 5010 (HY000): Do not wait for lock.MySQL [test]> SELECT * FROM t1 WHERE seat_id > 0 LIMIT 2 FOR UPDATE SKIP LOCKED;+---------+-------+| seat_id | state |+---------+-------+| 3 | 0 || 4 | 0 |+---------+-------+2 rows in set (0.00 sec)MySQL [test]> commit;Query OK, 0 rows affected (0.00 sec)
###############session 1###############MySQL [test]> begin;Query OK, 0 rows affected (0.01 sec)MySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR UPDATE;+---------+-------+| seat_id | state |+---------+-------+| 1 | 0 || 2 | 0 |+---------+-------+2 rows in set (0.00 sec)###############session 2###############MySQL [test]> SET SESSION innodb_lock_wait_timeout=1;Query OK, 0 rows affected (0.00 sec)MySQL [test]> begin;Query OK, 0 rows affected (0.00 sec)MySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 LOCK IN SHARE MODE;ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transactionMySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR SHARE;ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transactionMySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR SHARE NOWAIT;ERROR 5010 (HY000): Do not wait for lock.MySQL [test]> SELECT * FROM t1 WHERE state = 0 LIMIT 2 FOR SHARE SKIP LOCKED;+---------+-------+| seat_id | state |+---------+-------+| 3 | 0 || 4 | 0 |+---------+-------+2 rows in set (0.00 sec)MySQL [test]> commit;Query OK, 0 rows affected (0.00 sec)
ALTER TABLE `table` [NO_WAIT | WAIT [n]] `command`;DROP TABLE `table` [NO_WAIT | WAIT [n]];TRUNCATE TABLE `table` [NO_WAIT | WAIT [n]];OPTIMIZE TABLE `table` [NO_WAIT | WAIT [n]];RENAME TABLE `table_src` [NO_WAIT | WAIT [n]] TO `table_dst`;CREATE INDEX `index` ON `table.columns` [NO_WAIT | WAIT [n]];CREATE FULLTEXT INDEX `index` ON `table.columns` [NO_WAIT | WAIT [n]];CREATE SPATIAL INDEX `index` ON `table.columns` [NO_WAIT | WAIT [n]];DROP INDEX `index` ON `table` [NO_WAIT | WAIT [n]];
フィードバック