我想在mysql 5.1中对外键实现一种 xor 约束
有这个表,让我们说实体可以引用表ValsA和ValsB表示的两种不同的值集。现在我想实现一个约束,它确保这两个中的一个被映射,而另一个不是。
在Oracle中,您可以使用类似
的内容CHECK (NVL2(FK_A,1,0)+NVL2(FK_B,1,0)=1));
但据我所知,MySQL并不真正支持CHECK约束(还)。
有什么想法吗?
答案 0 :(得分:2)
正确。 MySQL不支持检查约束。 CHECK子句被解析但被所有存储引擎忽略。
您必须在客户端强制执行XOR条件。