我正在尝试向表 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))')
如果需要更多细节,我会更新帖子。
慕标琳琳
相关分类