Ik выполняет запрос, который вставляет некоторые значения в таблицу, если существует комбинация ID, Year, rownum (уникальный индекс), который я делаю для регулярного обновления DUPLICATE KEY UPDATE, и поэтому строка обновляется. Запрос выглядит так:MYSQL ON DUPLICATE KEY UPDATE и IGNORE в одном запросе
INSERT INTO data_advertenties_prijzen (`ID`, `year`, `rownum`, `status_prijs`,
`datum_dag`, `timestamp_dag`)
VALUES (100,2014,1,1,'2014-01-01',1388534400),
(100,2014,2,1,'2014-07-16',1405468800),
(100,2014,3,1,'2014-07-26',1406332800)
ON DUPLICATE KEY UPDATE
status_prijs = VALUES(status_prijs),
datum_dag = VALUES(datum_dag),
timestamp_dag = VALUES(timestamp_dag)
Ничего сложного, но ....
Я также хочу сделать IGNORE ON DUPLICATE для 1 значения в том же запросе. Я также хочу вставить одну строку для 2015 года. Например: (100,2015,1,1, '2015-01-01', 1405468800) ... Если уже есть строка с ID = 100, Year = 2015 и rownum = 1 вставка этой строки должна быть проигнорирована.
Как это сделать?
On Duplicate работает, проверяя первичные и уникальные ключи. Поэтому вам нужно будет установить столбцы 'year' и' rownum' как уникальные ключи для этого. –
Джеймс, я сделал, и первый запрос работает нормально, но я также хочу вставить строку с 2015 (год), но когда уже есть строка с 2015 годом, то не следует вставлять только строку 2015 года ... –
Есть ли какая-либо причина не устанавливать столбец года как уникальный? –