2011-12-12 248 views
0

當多個唯一密鑰有可能具有一個或多個唯一密鑰嗎?Mysql多個唯一密鑰

例如,我該如何檢查這個鍵或這個鍵,如果發現一個重複的錯誤,然後更新該鍵?

我有2個獨特的鍵:UPN和(用戶名,學校)

我們出MYSQL使用上的重複更新語句。如果UPN通過,則在upn鍵上更新,如果重複或插入新行。我想,以檢查UPN和(用戶名,學校),並執行以下操作:

如果對 UPN匹配更新如果(用戶名,學校)對 匹配更新,如果UPN dosnt比賽,但(用戶名,學校)做更新(用戶名,學校)比賽 如果upn比賽和(用戶名,學校)在UPN比賽的dosnt更新

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

回答

1

您可以有條件運營商查詢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)); 

在這種情況下更新的順序是顯著。