MySQL是否可以允许缺少外键引用?

问题描述 投票:0回答:1

我在MySQL 5.7.x数据库中有两个表。我维护其数据的表A和我只能读取的表B。我想从表A中的列定义一个外键关系,以引用表B中的列。问题是表B中的引用列并不总是具有表A中的列所引用的值。

我不介意B的列没有值。只要为咨询目的定义了关系,就可以。但是,每个外键关系我都尝试从A定义requires的值也要在B中。

我如何在没有要求的情况下定义关系?也就是说,我可以让它为可选吗?

我已经在网上搜索了答案,但是找不到解决方案。也许我对搜索词的措辞不好,或者我使用了错误的术语。

[我认为这可以通过MySQL 8的NOT ENFORCED选项来实现,但是只有在CHECK类型的约束下才可以实现。

mysql rdbms
1个回答
1
投票

MySQL中的外键可以是enforced or not at session level(这确实是非传统的,恕我直言,这是设计错误):

SET FOREIGN_KEY_CHECKS = 0;
-- Do stuff
SET FOREIGN_KEY_CHECKS = 1;

但是什么都不是。咨询外键并不是关系数据库设计中的真正概念。乍一看,我看不出它将解决什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.