sql - Mysql中的异或约束

标签 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 约束(还)。

有什么想法吗?

最佳答案

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

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

关于sql - Mysql中的异或约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3812468/

相关文章:

Php 从唯一的 SQL 行中检索一组值并将其显示在 HTML 选项列表中

database - Django 中的任意数据库连接

php - 使用 PHP 解密 mysql 数据库中的某些字段

SQL根据数量复制行

mysql - Django游标查询获取总时间

php - cakephp中的sql查询

PHP MySQL ETL。我应该使用 ETL 工具、存储过程还是 php 脚本?

mysql - 开发一个从远程数据库获取内容的 iOS 应用程序

mysql - (mySQL 数据库 - 存储不同类型的相同值

sql - 如何在 where 子句中使用别名?