This problem happens for a tables with single varchar PK or UK, or PK+UK, but does not happen when there is single int auto_increment PK. Happens again with auto_increment PK + UK on another varchar column, for example:
CREATE TABLE `tbl_0` (
`reg_name` varchar(127) NOT NULL,
`reg_key` varchar(64) NOT NULL DEFAULT '',
`reg_secret` varchar(128) NOT NULL,
`description` varchar(255) DEFAULT NULL,
`reg_status` varchar(16) NOT NULL,
`user_id` varchar(255) NOT NULL,
`owner_id` varchar(64) DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- no deadlocks
CREATE TABLE `tbl_0` (
`reg_name` varchar(127) NOT NULL,
`reg_key` varchar(64) NOT NULL DEFAULT '',
`reg_secret` varchar(128) NOT NULL,
`description` varchar(255) DEFAULT NULL,
`reg_status` varchar(16) NOT NULL,
`user_id` varchar(255) NOT NULL,
`owner_id` varchar(64) DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
UNIQUE KEY `reg_key` (`reg_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- deadlocks
This problem happens for a tables with single varchar PK or UK, or PK+UK, but does not happen when there is single int auto_increment PK. Happens again with auto_increment PK + UK on another varchar column, for example:
CREATE TABLE `tbl_0` (
`reg_name` varchar(127) NOT NULL,
`reg_key` varchar(64) NOT NULL DEFAULT '',
`reg_secret` varchar(128) NOT NULL,
`description` varchar(255) DEFAULT NULL,
`reg_status` varchar(16) NOT NULL,
`user_id` varchar(255) NOT NULL,
`owner_id` varchar(64) DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- no deadlocks
CREATE TABLE `tbl_0` (
`reg_name` varchar(127) NOT NULL,
`reg_key` varchar(64) NOT NULL DEFAULT '',
`reg_secret` varchar(128) NOT NULL,
`description` varchar(255) DEFAULT NULL,
`reg_status` varchar(16) NOT NULL,
`user_id` varchar(255) NOT NULL,
`owner_id` varchar(64) DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
UNIQUE KEY `reg_key` (`reg_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
-- deadlocks