MySQL Workbench 错误 1452 突然停止工作

MySQL Workbench Error 1452 suddenly stopped working

我有 2 个表(客户和带有 FK 的汽车),一开始一切正常,我能够插入数据直到 ID 7,然后突然它停止工作并给我一个错误 1452。试图寻找解决方案,但无济于事。 Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`test`.`cars`, CONSTRAINT `personid` FOREIGN KEY (`id`) REFERENCES `customer` (`id`))

下面是表格:

CREATE TABLE `customer` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `lastname` varchar(45) NOT NULL,
  `firstname` varchar(45) NOT NULL,
  `city` varchar(45) NOT NULL,
  `age` varchar(45) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

CREATE TABLE `cars` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `brand` varchar(45) NOT NULL,
  `model` varchar(45) NOT NULL,
  `reg` varchar(45) NOT NULL,
  `personid` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`),
  CONSTRAINT `personid` FOREIGN KEY (`id`) REFERENCES `customer` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

我想我找到了问题和解决方案(有点)。

更新现有的 AUTO_INCREMENT 列值也会重置 AUTO_INCREMENT 序列。

所以它停止自动为汽车分配 id table 并且只有在我手动添加 id 时它才有效。然后我这样做了: ALTER TABLE tbl AUTO_INCREMENT = 12; 并且现在似乎正在工作。但仍然不知道它是如何停止工作的,并且不记得更新现有的 AUTO_INCREMENT。无论如何留下这个作为答案。