Mysql несколько уникальных ключей - PullRequest
0 голосов
/ 12 декабря 2011

Возможно ли иметь или вариант, когда несколько уникальных ключей?

Например, я, что проверить на этот ключ или этот ключ, и если один выдает дубликат ошибки, а затем обновить на этом ключе?

У меня есть 2 уникальных ключа: UPN и (имя пользователя, школа)

Мы используем дублирующий оператор обновления в нашем MYSQL.если передан UPN, обновите ключ upn, если он повторяется, или вставьте новую строку.Я хочу проверить UPN и (имя пользователя, школа) и сделать следующее:

Если обновление соответствует совпадению в этом случае Если (имя пользователя, школа) соответствует обновлению в этом случае, если совпадение не выполнено, но (имя пользователя, школа)делать обновление при совпадении (имя пользователя, школа) Если соответствие по UPN и обновление (имя пользователя, школа) не соответствуют обновлению UPN

Так что мне нужно использовать его или вместо и, возможно ли это?

Ash

1 Ответ

1 голос
/ 12 декабря 2011

Вы можете эмулировать это с помощью условных операторов в предложении 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));

Порядок обновлений в этом случае значителен.

...