[英]MySQL Error 1452 when inserting data
导入旧的SQL文件并修复所有错误时,我总是收到错误消息,但是我被卡住了,无法理解这意味着什么。
ALTER TABLE
property
ADD CONSTRAINTproperty_ibfk_1
FOREIGN KEY(intid
)引用interiors
(id
)ON在更新CASCADE时删除CASCADE,ADD CONSTRAINTproperty_ibfk_2
FOREIGN KEY(owner
)参考accounts
(id
)ON在更新CASCADE上表示为空:
ionicnew
无法添加或更新子行:外键约束失败(ionicnew
。#sql-252c_e1
,CONSTRAINTproperty_ibfk_2
键(owner
)参考accounts
(id
)开
property
表的完整代码:
CREATE TABLE `property` (
`id` int(11) NOT NULL,
`x` float NOT NULL,
`y` float NOT NULL,
`z` float NOT NULL,
`a` float NOT NULL,
`type` bit(32) NOT NULL,
`intid` int(11) NOT NULL,
`name` varchar(128) NOT NULL,
`price` int(11) NOT NULL,
`mapicon` tinyint(3) UNSIGNED NOT NULL,
`status` tinyint(3) UNSIGNED NOT NULL,
`point` int(10) UNSIGNED NOT NULL,
`saleprice` int(11) NOT NULL DEFAULT '0',
`owner` int(11) DEFAULT NULL,
`money` int(11) NOT NULL DEFAULT '0',
`level` tinyint(3) UNSIGNED NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `property`
ADD PRIMARY KEY (`id`),
ADD KEY `intid` (`intid`),
ADD KEY `owner` (`owner`);
ALTER TABLE `property`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=86;
ALTER TABLE `property`
ADD CONSTRAINT `property_ibfk_1` FOREIGN KEY (`intid`) REFERENCES `interiors` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `property_ibfk_2` FOREIGN KEY (`owner`) REFERENCES `accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE;
如果需要,我可以上传完整的SQL文件。
外键关系涉及一个包含中央数据值的父表,以及一个具有指向其父级的相同值的子表。 在子表中指定FOREIGN KEY子句。
如果在父表中没有匹配的候选键值,它将拒绝任何试图在子表中创建外键值的INSERT或UPDATE操作。
了解更多转到此链接
因此,您的错误Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails
本质(intid)
意味着您正在尝试向property
表中添加一行,而在interiors
表中不存在(intid)
匹配的行(intid)
。
您必须首先将该行插入到interiors
表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.