mysql - MySQL Workbench 错误 1452 突然停止工作
问题描述
我有 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 分配给 cars 表,只有当我手动添加 id 时它才有效。然后我这样做了:ALTER TABLE tbl AUTO_INCREMENT = 12;
现在似乎正在工作。但仍然不知道它是如何停止工作的,也不记得更新了现有的 AUTO_INCREMENT。无论如何留下这个作为答案。
推荐阅读
- spring-boot - Apache骆驼,第二次无法从FTP获取文件
- artifactory - 如何正确存档我们的应用程序版本的安装程序?
- python - Python Selenium - 覆盖地理位置不起作用
- java - 如何在 Android 上从启动屏幕动画到主屏幕?
- react-native - 在反应导航5中传递和获取参数
- python - 如何在某个范围内循环,并重新开始循环直到该范围的开头
- android - Gradle 在 lintVital 期间因 OutOfMemoryError 而失败
- css - 悬停时外部 SVG 路径的 CSS 选择
- azure - failOnStderr: true 时的 Azure 脚本任务,出现非没有此标志的 bash 错误
- python - 如何通过获取整数字段的准确值来验证表单