gpt4 book ai didi

mysql - 一对一的 FK 约束

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

我的 MySQL 数据库中有两个表,EventTheme 是一对一的关系。

ALTER TABLE Event ADD CONSTRAINT FK_FA6F25A359027487 FOREIGN KEY (theme_id) REFERENCES Theme (_uuid) ON DELETE SET NULL;
ALTER TABLE Theme ADD CONSTRAINT FK_56B4C80C71F7E88B FOREIGN KEY (event_id) REFERENCES Event (_uuid) ON DELETE CASCADE;

我想要这样的行为,如果我删除主题记录,theme_id 设置为 NULL,如果我删除事件记录,主题记录也被删除。

但是,现在当我运行 DELETE FROM Event 时,出现此错误。

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`from_dev`.`eventleveltheme`, CONSTRAINT `FK_6E25E16871F7E88B` FOREIGN KEY (`event_id`) REFERENCES `Event` (`_uuid`))

我可以不设置这两个约束吗?他们有某种冲突吗?

最佳答案

这里有一个循环引用 - Event 有一个 FK 到 Theme 并且 Theme 有一个 FK 到 Event。从一个表到另一个表应该只有一个 FK,而不是两个。

我在这里猜测是因为我不知道您的数据的确切用途,但似乎“主题”是可以反复使用的东西,而事件是一次性的。所以我会让 Event 有一个 FK 到 Theme,并删除 ThemeEvent 的 FK。

关于mysql - 一对一的 FK 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19520568/

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