обновление старых значений столбца при вставке - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть такая таблица

|  id_1  |  id_2  |  new  |
|  1     |  1     |  1    |
|  1     |  2     |  1    |
|  1     |  3     |  1    |

Теперь я хочу добавить больше строк и обновить старые строки, имеющие unique key на [id_1, id_2], поэтому я делаю эти запросы

UPDATE table
SET new = 0
WHERE id_1 = 1
---
INSERT INTO table (id_1, id_2, new) 
VALUES (1, 1, 1), (1, 3, 1), (1, 4, 1)
ON DUPLICATE KEY UPDATE new = 1

поэтому я получил эту таблицу, потому что я не обновил id_2 = 2 строку

|  id_1  |  id_2  |  new  |
|  1     |  1     |  1    |
|  1     |  2     |  0    |
|  1     |  3     |  1    |
|  1     |  4     |  1    |

как я могу сделать это более эффективно и, возможно, в одном запросе, как

INSERT INTO table (id_1, id_2, new) 
VALUES (1, 1, 1), (1, 3, 1), (1, 4, 1)
ON DUPLICATE KEY 
UPDATE (new = 0 WHERE id_1 = 1) AND UPDATE (new = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...