在此tutorial之后,我先进行“ INSERT IGNORE”,然后进行“ INSERT ... ON DUPLICATE KEY UPDATE”。但这是行不通的。 我正在使用NodeJS从API获取一些数据,并将这些数据存储到mySQL数据库中。在存储数据之前,我想知道此行是否已经存在。 该ID为AUTO_INCREMENT,我不知道该ID。我不想在NodeJS中使用async / await或promise,而是想在不知道ID的情况下使用mySQL处理这一点。
我尝试了此操作,但是它添加了具有新ID的新行,而不是已经存在的另一行:
INSERT INTO test (nom, date, heure) VALUES ('123456', '2018-08-23', '10:45:00') ON DUPLICATE KEY UPDATE nom='123456', date='2018-08-23', heure='10:45:00';
在那之后,我测试了这个,同样的结果:
INSERT IGNORE INTO test (nom, date, heure) VALUES ('123456', '2018-08-23', '10:45:00')
感谢您的帮助!
答案 0 :(得分:1)
为3列设置唯一索引:
ALTER TABLE test ADD UNIQUE un_index(nom, date, heure);
然后执行:
INSERT IGNORE INTO test (nom, date, heure) VALUES ('123456', '2018-08-23', '10:45:00');
如果3个值已经存在,则不会插入该行。