Mysql中的XOR约束

时间:2010-09-28 12:06:27

标签: sql mysql database oracle constraints

我想在mysql 5.1中对外键实现一种 xor 约束

有这个表,让我们说实体可以引用表ValsA和ValsB表示的两种不同的值集。现在我想实现一个约束,它确保这两个中的一个被映射,而另一个不是。

在Oracle中,您可以使用类似

的内容
CHECK (NVL2(FK_A,1,0)+NVL2(FK_B,1,0)=1));

但据我所知,MySQL并不真正支持CHECK约束(还)。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

正确。 MySQL不支持检查约束。 CHECK子句被解析但被所有存储引擎忽略。

您必须在客户端强制执行XOR条件。