Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 仅当不存在且未获取其id时插入行_Mysql - Fatal编程技术网

Mysql 仅当不存在且未获取其id时插入行

Mysql 仅当不存在且未获取其id时插入行,mysql,Mysql,我先用“插入忽略”和“插入。。。在重复密钥更新时“然后”。但它不起作用。 我使用NodeJS从API获取一些数据,并将这些数据存储到mySQL数据库中。在存储数据之前,我想知道此行是否已经存在。 ID是自动递增的,我不知道这个。我不想在NodeJS中使用async/await或promissions,而是想在不知道ID的情况下使用mySQL来处理这一点 我尝试了这个,但它添加了一个具有新ID的新行,而不是已经存在的另一行: INSERT INTO test (nom, date, heure)

我先用“插入忽略”和“插入。。。在重复密钥更新时“然后”。但它不起作用。 我使用NodeJS从API获取一些数据,并将这些数据存储到mySQL数据库中。在存储数据之前,我想知道此行是否已经存在。 ID是自动递增的,我不知道这个。我不想在NodeJS中使用async/await或promissions,而是想在不知道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个值已经存在,则不会插入该行。

新行是用新id插入的。您还希望发生什么?我不想在表中插入与上一个字段相同的新行。其他列是否有唯一索引或约束?不,没有。唯一的约束是一个唯一的ID自动递增和一些不能为空的字段。然后插入该行就没有问题了。