ON DUPLICATE KEY: ограничение уникальности нескольких столбцов

Прямо сейчас у меня:

INSERT INTO mytable (a,b,c,d) VALUES(1,2,3,4)
  ON DUPLICATE KEY UPDATE c=VALUES(c),d=VALUES(d)

, который работает, если a или b являются UNIQUE ключами ...

Но теперь я хочу ОБНОВЛЯТЬ только тогда, когда другая строка с парой (a, б) не существует в таблице (иначе пропустите вставку).

Обычно (a, b) должен быть УНИКАЛЬНЫМ , а не (a) или ] (b) , но оба соединены.

Например, эти строки будут действительными

ID (auto-inc) | a | b |  c  | d
            0 | 5 | 1 | 343 |466
            1 | 5 | 2 | 363 |466
            2 | 5 | 3 | 343 |496
            3 | 7 | 1 | 343 |496

Потому что там 5,1 , 5,2 , 5.3 , 7.1 и т. Д.

Но строку №2 здесь следует рассматривать как дубликат строки №1, поэтому строку №1 следует обновить:

ID (auto-inc) | a | b |  c  | d
            0 | 5 | 1 | 343 |466
            1 | 5 | 1 | 363 |466
            2 | 5 | 3 | 343 |496
            3 | 7 | 1 | 343 |496

Возможно ли это?

6
задан Mat 31 July 2011 в 12:55
поделиться