我正在尝试向表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,'无法添加或更新子行:外键约束失败(BridgeBuilderBridges,CONSTRAINT Bridges_ibfk_1外键(Bridge_ID)参考UserUser_ID))')


如果需要更多详细信息,请更新帖子。

最佳答案

您应该检查值info ['User_ID']是否正确。表Bridges中的表User_ID中需要表User

关于python - 错误1452'无法添加或更新子行',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54350493/

10-10 23:31