MySQL可以允许参考目标缺失吗?

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

我在MySQL 5.7.x DB中有两个表。 表A,其数据由我维护,表B,我只能读取。 我想定义一个关系(有点儿外键)从表A中的一列引用表B中的一列的值,例外的是表B中被引用的列并不总是包含表A中的列所引用的值。

我不介意B的列没有值。 只要是为了咨询目的而定义的关系,就没问题。 但是,如果我试图为此使用外键关系,它就会 需要 A的值也在B中。

我怎样才能在没有要求的情况下定义这种关系呢? 也就是说,我可以让它是可选的吗?

我希望这个具体的方向是A引用B中的一个值,但是B中不包含这个值,那就可以了。 不可以 正如有人建议的那样,A中的列是空的,没有指向B中的任何值。

我在网上搜索了一下这个问题的答案,但是找不到解决办法。 可能是我的搜索词表达得不好,或者我用错了术语。

我想这可能是MySQL 8的 NOT ENFORCED 选项,但这只有在使用 CHECK 类型的约束。

mysql rdbms
1个回答
1
投票

MySQL中的外键可以是 是否在会话层面执行 (一些真正非正统的东西,IMHO是一个设计错误)。

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

但它是全有或全无的。咨询外键在关系型数据库设计中其实不是一个概念。乍一看,我看不出它能解决什么问题。

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