SET NAMES utf8; CREATE TABLE `t``\""e` (a INT, PRIMARY KEY (a)) ENGINE=InnoDB PARTITION BY RANGE (a) SUBPARTITION BY HASH (a) (PARTITION `p0``\""e` VALUES LESS THAN (100) (SUBPARTITION `sp0``\""e`, SUBPARTITION `sp1``\""e`), PARTITION `p1``\""e` VALUES LESS THAN (MAXVALUE) (SUBPARTITION `sp2``\""e`, SUBPARTITION `sp3``\""e`)); INSERT INTO `t``\""e` VALUES (0), (2), (6), (10), (14), (18), (22); START TRANSACTION; # con1 SET NAMES utf8; START TRANSACTION; # default connection UPDATE `t``\""e` SET a = 16 WHERE a = 0; # con1 UPDATE `t``\""e` SET a = 8 WHERE a = 22; UPDATE `t``\""e` SET a = 12 WHERE a = 0; # default connection SELECT lock_table, COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS GROUP BY lock_table; lock_table COUNT(*) `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */ 2 set @old_sql_mode = @@sql_mode; set sql_mode = 'ANSI_QUOTES'; SELECT lock_table, COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS GROUP BY lock_table; lock_table COUNT(*) "test"."t`\""""e" /* Partition "p0`\""""e", Subpartition "sp0`\""""e" */ 2 set @@sql_mode = @old_sql_mode; UPDATE `t``\""e` SET a = 4 WHERE a = 22; ERROR 40001: Deadlock found when trying to get lock; try restarting transaction # First table reported in 'SHOW ENGINE InnoDB STATUS' SHOW ENGINE InnoDB STATUS; Type Name Status InnoDB index `PRIMARY` of table `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */ set @old_sql_mode = @@sql_mode; set sql_mode = 'ANSI_QUOTES'; SHOW ENGINE InnoDB STATUS; Type Name Status InnoDB index `PRIMARY` of table `test`.`t``\""e` /* Partition `p0``\""e`, Subpartition `sp0``\""e` */ set @@sql_mode = @old_sql_mode; # con1 ROLLBACK; # default connection DROP TABLE `t``\""e`; SET NAMES DEFAULT;