Ik执行一个在de table中插入一些值的查询,如果ID,Year,rownum(唯一索引)的组合存在,我做一个常规的ON 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)
那里没有困难,但...。
我也想在同一个查询中为1个值做ON DUPLICATE IGNORE。我也希望在2015年插入一行。例如:(100,2015,1,1,'2015-01-01',1405468800)... 如果已经有一行ID = 100,Year = 2015和rownum = 1,该行的插入必须被忽略。
如何做到这一点?
重复的作品通过检查主键和唯一键。因此,您需要将“年份”和“rownum”这两列设置为唯一键值才能生效。 – 2014-10-01 18:46:23
詹姆斯我做的和第一个查询工作正常,但我也想插入与2015年(年)的行,但是当已经有一排2015年比只有2015年行不能插入... – 2014-10-01 19:00:17
是否有任何原因不要将年份列设置为唯一? – 2014-10-01 19:04:12