Mysql多个唯一密钥

Mysql多个唯一密钥

问题描述:

当多个唯一密钥有可能具有一个或多个唯一密钥吗?Mysql多个唯一密钥

例如,我该如何检查这个键或这个键,如果发现一个重复的错误,然后更新该键?

我有2个独特的键:UPN和(用户名,学校)

我们出MYSQL使用上的重复更新语句。如果UPN通过,则在upn键上更新,如果重复或插入新行。我想,以检查UPN和(用户名,学校),并执行以下操作:

如果对 UPN匹配更新如果(用户名,学校)对 匹配更新,如果UPN dosnt比赛,但(用户名,学校)做更新(用户名,学校)比赛 如果upn比赛和(用户名,学校)在UPN比赛的dosnt更新

所以我需要它使用或代替和,这是可能的吗?

您可以有条件运营商查询ON DUPLICATE子句中模拟这种:

INSERT INTO thetable (id, username, school, othervalue) 
VALUES (10, 'newtover', 'cool school', 'a comment') 
ON DUPLICATE KEY UPDATE 
    username = IF(id = VALUES(id), VALUES(username), username), 
    school = IF(id = VALUES(id), VALUES(school), school), 
    id = IF(id = VALUES(id), id, VALUES(id)); 

在这种情况下更新的顺序是显著。