我首先使用“INSERT IGNORE”遵循本教程,然后使用“INSERT ... ON DUPLICATE KEY UPDATE”。但它不起作用。我正在使用 NodeJS 从 API 获取一些数据,并将这些数据存储到 mySQL 数据库中。在存储数据之前,我想知道这一行是否已经存在。ID 是 AUTO_INCREMENT 而我不知道这个。我不想在 NodeJS 中使用 async/await 或 promises,而是想在不知道 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')
谢谢你的帮助!
为 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 个值已经存在,则不会插入该行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句