gpt4 book ai didi

mysql - 更改 mySQL 表以添加外键时出现错误 #1452

转载 作者:可可西里 更新时间:2023-11-01 08:07:59 26 4
gpt4 key购买 nike

试图帮助一名实习生完成她的项目。她想将外键添加到现有表,但此查询:

ALTER TABLE `document` 
ADD CONSTRAINT `document_ibfk_1` FOREIGN KEY (`cle_author`)
REFERENCES `author` (`id_author`)
ON DELETE CASCADE
ON UPDATE CASCADE;

给出这个错误:

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`wrc_mysql`.<result 2 when explaining filename '#sql-30e4_7000d'>, CONSTRAINT `document_ibfk_1` FOREIGN KEY (`cle_author`) REFERENCES `author` (`id_author`) ON DELETE CASCADE ON UPDATE CASCADE)

架构是这样的

CREATE TABLE `document` (
`id_document` int(11) NOT NULL AUTO_INCREMENT,
`abstract` text,
`number_of_pages` int(10) DEFAULT NULL,
`original_surrey_citation` varchar(255) DEFAULT NULL,
`updated_citation` varchar(255) DEFAULT NULL,
`library_of_congress` varchar(10) DEFAULT NULL,
`cross_citation` varchar(50) DEFAULT NULL,
`doc_type` varchar(255) DEFAULT NULL,
`questions` varchar(255) DEFAULT NULL,
`keywords` varchar(255) DEFAULT NULL,
`cle_author` int(10) NOT NULL,
PRIMARY KEY (`id_document`),
KEY `cle_author` (`cle_author`)
) ENGINE=InnoDB AUTO_INCREMENT=22591 DEFAULT CHARSET=utf8

CREATE TABLE `author` (
`id_author` int(10) NOT NULL AUTO_INCREMENT,
`author_name` varchar(255) DEFAULT NULL,
`sender_office` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_author`),
KEY `author_name` (`author_name`,`sender_office`)
) ENGINE=InnoDB AUTO_INCREMENT=22591 DEFAULT CHARSET=utf8

谁知道出了什么问题?

最佳答案

您的两个表之间的数据可能不一致。此错误意味着您的 document 表中有一个 cle_author 值,但在 author 表中没有相应的条目。由于 cle_author 值将被设置为外键,因此该字段的每个值都必须在 author 表的 id_author 中具有对应的条目> 字段。

关于mysql - 更改 mySQL 表以添加外键时出现错误 #1452,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com