当我执行以下SQL命令时:
INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass)
VALUES (NULL,1,1,"user","pass");
我收到以下错误消息:
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint f
ails (`dm`.`test_usershosts`, CONSTRAINT `test_usershosts_ibfk_1` FOREIGN KEY (`
userid`) REFERENCES `test_users` (`userid`) ON DELETE CASCADE ON UPDATE CASCADE)
我的桌子:
CREATE TABLE IF NOT EXISTS `test_users` (
`userid` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(10) NOT NULL DEFAULT '',
`password` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (userid)
) ENGINE=InnoDB;
INSERT INTO `test_users` (`userid`, `username`, `password) VALUES
(1120, 'guest', '12250170a9624f336ca24');
CREATE TABLE IF NOT EXISTS `test_hosts` (
`hid` int(11) NOT NULL AUTO_INCREMENT,
`UID` int(11) NOT NULL,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (hid)
) ENGINE=InnoDB;
INSERT INTO `test_hosts` (`hid`, `UID`, `name`) VALUES (30, 10, 'MU');
CREATE TABLE IF NOT EXISTS `test_usershosts` (
`RID` int(11) NULL AUTO_INCREMENT,
`userid` int(11) ,
`hid` int(11) ,
`Usr` varchar(100) ,
`Pass` varchar(100) ,
PRIMARY KEY (RID),
INDEX (userid),
INDEX (hid),
FOREIGN KEY (userid) REFERENCES test_users (userid)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (hid) REFERENCES test_hosts (hid)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
我研究了许多类似的案例,但找不到任何解决方案。任何帮助,将不胜感激。
为什么您获得的是异常的原因是因为你将在表中的记录test_usershosts
,其中的价值userID
是不存在的表test_users
。与相同的值hid
也未显示在表上test_hosts
。
表格test_usershosts
取决于表格:test_users
和
test_hosts
。所以,要确保在表中插入记录时test_usershosts
,该值hid
与userid
存在于父表已经:test_users
和
test_hosts
。
尝试执行此查询,并确定将其插入。
INSERT INTO test_usershosts (RID,userid,hid,Usr,Pass)
VALUES (NULL,1120,30,'user','pass');
我AUTO_INCREMENT
在表格上看到该选项:test_users
和
test_hosts
,因为在两个表格上执行的每个查询都提供了值,所以不需要。
保存; 例外 调试:org.hibernate.engine.jdbc.spi.sqlExceptionHelper-无法执行语句[n/a]com.mysql.jdbc.exceptions.mysqlintegrityConstraintViolationException:无法添加或更新子行:外键约束失败(。,约束)外键()引用 警告:org.hibernate.engine.jdbc.spi
错误代码:1452。无法添加或更新子行:外键约束失败(.,约束外键()引用()) 我看过其他关于这个话题的帖子,但没有运气。我是不是在监督什么或者知道该怎么做?
问题内容: 我的数据库中有两个表: ; 。 有一个列引用了表的列。每当我试图做在上面的错误将显示和数据不会被保存。 问题答案: 听起来是在表之间您在数据库中具有外键约束。这意味着,在Course_id列中,您不能插入与外部表中的id不同的值。 上面的错误意味着当您发布数据时,外部字段为空或丢失。 查找内容:1.检查数据库中子表中的外部字段是否可以接受NULL。如果您具有带值的下拉列表,并且如果该字
问题内容: 当我不想相互连接两个表时,我得到以下消息:#1452-无法添加或更新子行:外键约束失败....我想从facebook_users表格中连接oauth_uid2(主键)外键为oauth_uid2的错误列表。但是我总是得到这个信息。我已经清除了数据,但没有任何效果。在表users_facebook中,我还有1条记录。 1452-无法添加或更新子行:外键约束失败(。,在更新级联上删除级联时使
当我不想将两个表相互连接时,我收到消息:#1452 - 无法添加或更新子行:外键约束失败....我想使用外键oauth_uid2将oauth_uid2(主键)从facebook_users选项卡连接到错误选项卡。但我总是收到这个信息。我已经清除了我的数据,但没有任何效果。同样在表中users_facebook我有 1 条记录。 1452-无法添加或更新子行:外键约束失败(., CONSTRAINT
问题内容: 我试图在我的注释表中插入值,但出现错误。俗话说,我不能添加或更新子行,我也不知道这意味着什么。我的架构如下所示: 我尝试执行的mysql语句如下所示: 我得到的错误看起来像这样: SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(。,CONSTRAINT FOREIGN KEY()引用()删除无操作,更新无操作) 问题答案: 这仅表示在表 co