小编Bri*_*ore的帖子

插入时的 MySql 间隙锁死锁

从多个来源频繁插入表时,我从表上的间隙锁中获得死锁。这是我的流程的概述。

START TRANSACTION
  UPDATE vehicle_image
  SET active = 0
  WHERE vehicleID = SOMEID AND active = 1

  Loop:
    INSERT INTO vehicle_image (vehicleID, vehicleImageFilePath, vehicleImageSplashFilePath
      ,vehicleImageThumbnailFilePath, vehicleImageMiniFilePath, mainVehicleImage, active)
    VALUES (%s, %s, %s, %s, %s, %s, 1);
END TRANSACTION
Run Code Online (Sandbox Code Playgroud)

的输出SHOW Create table vehicle_image;是:

CREATE TABLE `vehicle_image` (
  `vehicleImageID` int(11) NOT NULL AUTO_INCREMENT,
  `vehicleID` int(11) DEFAULT NULL,
  `vehicleImageFilePath` varchar(200) DEFAULT NULL,
  `vehicleImageSplashFilePath` varchar(200) DEFAULT NULL,
  `vehicleImageThumbnailFilePath` varchar(200) DEFAULT NULL,
  `vehicleImageMiniFilePath` varchar(200) DEFAULT NULL,
  `mainVehicleImage` bit(1) DEFAULT NULL,
  `active` bit(1) DEFAULT …
Run Code Online (Sandbox Code Playgroud)

mysql innodb deadlock mysql-5.6

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

deadlock ×1

innodb ×1

mysql ×1

mysql-5.6 ×1