【发布时间】:2017-04-23 17:52:23
【问题描述】:
我在 MySQL 中有下表列。
id
user_primary_email
user_secondary_email
我想让列 user_primary_email 和 user_secondary_email 的组合独一无二,我可以通过使用 UNIQUE KEY unique_key_name (user_primary_email, user_secondary_email) 来实现
上面添加的唯一键约束将帮助我实现以下场景,或者只是通过向单个列本身添加唯一键。
user_primary_email = 'xyz@gmail.com' AND user_secondary_email = 'pqr@gmail.com'
user_primary_email = 'xyz@gmail.com' AND user_secondary_email = 'pqr@gmail.com' //This will not be allowed to enter due to unique key constraint
现在我面临的问题是不应该允许以相反的方式添加相同的组合,如下所述。
user_primary_email = 'pqr@gmail.com' AND user_secondary_email = 'xyz@gmail.com' //This should not be allowed to add since already same email id combination added once
id | user_primary_email | user_secondary_email
-------------------------------------------------------
1 | xyz@gmail.com | pqr@gmail.com
-------------------------------------------------------
2 | pqr@gmail.com | xyz@gmail.com
-------------------------------------------------------
在上述情况下,在插入 row id 2 期间,它应该会抛出错误,因为这两个电子邮件 id 组合都已在 row id 1 中使用。
任何帮助都会很棒。
【问题讨论】:
-
这在这种情况下不起作用。
-
啊,对不起,我不确定 mysql。我知道在 sql server 中你可以编写一个函数,其中有一个查询,可以放在一个检查约束中......我猜 mysql 不存在同样的情况?