gpt4 book ai didi

MySQL关系数据库外键

转载 作者:行者123 更新时间:2023-11-29 06:18:22 25 4
gpt4 key购买 nike

为了学习数据库,我正在创建一个电影数据库。

要将多位导演与一部电影关联起来,我有以下架构:

movie(m_ID, ....)

m_director(dirID, dirName)//dirID is a autoincrement primary key

m_directs(dirID, m_ID) //dirID, m_ID are set as foreign Keys in the mysql

database(InnoDB engine)

我有一个连接到数据库的程序,需要将电影添加到数据库中。

我可以轻松地向电影表和 m_director 表添加新条目,但在 m_directs 表中添加条目时遇到问题。

INSERT INTO m_director (dirName) VALUES("Jason Reitman");
INSERT INTO m_directs (dirID, m_ID) VALUES(LAST_INSERT_ID(), "tt0467406");

我正在使用此 sql 语句插入新导演并将关联添加到电影。我知道电影的主键,但不知道dirID,所以我使用LAST_INSERT_ID()来获取刚刚插入的导演的最后一个id。

我遇到的问题是出现以下错误:

MySql.Data.MySqlClient.MySqlException (0x80004005): Cannot add or 
update a child row: a foreign key constraint fails (`siteproducts`.
`m_directs`, CONSTRAINT `m_directs_ibfk_2` FOREIGN KEY (`dirID`)
REFERENCES `m_directs` (`dirID`) ON DELETE CASCADE ON UPDATE CASCADE)

有什么想法吗?

最佳答案

看起来您将 m_directs.dirID 的外键设置为相同的表和列,而不是 m_director.dirID

关于MySQL关系数据库外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com