我正在尝试向Bridges表中插入一条新记录,我相信程序正在尝试在Bridges表中使用Bridge\u ID而不是User\u 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\u ID']不会从1变为1,在插入记录之前,会回显User\u 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, 'Cannot add or update a child row: a foreign key constraint fails (
BridgeBuilder
.Bridges
, CONSTRAINTBridges_ibfk_1
FOREIGN KEY (Bridge_ID
) REFERENCESUser
(User_ID
))')
如果需要更多的细节,我会更新帖子。你知道吗
我认为您没有正确地将参数传递给查询。你知道吗
请尝试:
然后可以使用以下命令执行查询:
您应该检查值info['User\u ID']是否正确。表
Bridges
要求User_ID
存在于表User
相关问题 更多 >
编程相关推荐