为了账号安全,请及时绑定邮箱和手机立即绑定

错误 1452 '无法添加或更新子行'

错误 1452 '无法添加或更新子行'

眼眸繁星 2021-10-19 16:41:54
我正在尝试向表 Bridges 中插入一条新记录,我相信该程序正在尝试在 Bridges 表中使用 Bridge_ID 而不是 User_ID。我在 Ubuntu 操作系统上使用 MySQL 和 Python。我已经尝试过的事情:搜索堆栈溢出(和许多其他站点)问我的老师干运行代码sql DDL:CREATE TABLE User (     User_ID INT NOT NULL AUTO_INCREMENT,     Username VARCHAR(30) NOT NULL,     Email VARCHAR(50) NOT NULL,     Password VARCHAR(64) NOT NULL,     PRIMARY KEY (User_ID) );CREATE TABLE Bridges(     User_ID INT NOT NULL,     Bridge_ID INT NOT NULL AUTO_INCREMENT,     Bridge_Name VARCHAR(30) NOT NULL,     BridgeFile BLOB NOT NULL,     Date_Last_Edit DATE NOT NULL,     Difficulty VARCHAR(10) NOT NULL,     Land_Type INT NOT NULL,     PRIMARY KEY (Bridge_ID),     FOREIGN KEY User_ID REFERENCES User(User_ID) );值得注意的是 info['User_ID'] 不会从 1 改变,并且在插入记录之前 User_ID 持有的值被回显以确认这一点。进行的查询是:command = ('INSERT INTO Bridges                     (User_ID,Bridge_Name,Date_Last_Edit,                    BridgeFile,Difficulty,Land_Type)             VALUES ("%s","%s",CURDATE(),"%s","%s","%s");'  %(info['User_ID'],name,adjacencyList,info['dif'],info['land']))错误是:(1452, '不能添加或更新子行: 外键约束失败 ( BridgeBuilder. Bridges, CONSTRAINT Bridges_ibfk_1FOREIGN KEY ( Bridge_ID) REFERENCES User( User_ID))')如果需要更多细节,我会更新帖子。
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

您应该检查值 info['User_ID'] 是否正确。表Bridges要求User_ID存在于表中User


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信