Mysql组合键顺序相关性

标签 mysql database key composite

我有这个 mySql 表:

create table associations
(email1 varchar(30), 
email2 varchar(30),
primary key(email1, email2));

现在在这个表中,如果我按如下方式插入两行:

insert into associations values('a@abc.com','b@abc.com');

insert into associations values('b@abc.com','a@abc.com');

这些在数据库中是可以接受的。我想做的是它们不应该被数据库接受,因为我只对键的组合感兴趣而不是它们的顺序

mysql(或任何其他数据库)中是否有任何允许我这样做的内置功能/关键字/hack?

最佳答案

在支持检查约束的 RDBMS 中,您可能会强制这两个条目以特定顺序出现。*这可以确保您所描述的那种重复不会发生,因为这两个顺序之一将被拒绝。不幸的是,MySQL 不提供检查约束,尽管接受了对 this question 的回答。提出了一种使用触发器实现类似结果的方法。

* 这是假设您对列数据类型有总顺序,在本例中是这样。

关于Mysql组合键顺序相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375765/

相关文章:

php - 如何编辑这个日期选择器?

mysql - 使用 Django 在遗留数据库中处理主键字段

Android SQLite 获取 CursorIndexOutOfBoundsException

YAML 中的 RSA 公钥/私钥

mysql - 从字符串列表中打印 user_id 列表

python - 在 Google Cloud SQL (GAE) Python 应用程序中管理数据库连接的好方法是什么?

c# - 如何在 C# 中使用多个修饰键

mysql - 关系表 - 仅选择表 A 中不作为表 B 中的 ID 存在的行

php - 优化相关子查询

mysql - 在 PHPMyAdmin 更新后恢复数据