Незнаю можно ли тут обсуждать БД, но вот что у меня получается. Вначала я делаю выборку одним разом всех не обработанных строк. Потом в цикле начинаю обрабатывать каждую строку, т.е. делаю запрос в БД, существует ли такой ИИН, если нет такого, то вставляю в базу. Потом вставляю телефон, и делаю запрос - отмечаю необработанную строку флагом "обрабатано". Получается, мне нужно все используемые таблицы скопировать и потом с ними в обычном цикле for производить операции?
let x = 0;
con.query("SELECT * FROM xml_person WHERE done='0'", function (err, resultFromXml) { //запрос всех необработанных строк
setInterval(function () {
con.query("SELECT * FROM person WHERE iin='" + resultFromXml[x].iin + "'", function (err, resultFromPerson) { //проверка, имеется ли такой ИИН в базе
if (resultFromPerson.length == 0) {
con.query("INSERT INTO `person` (`idperson`, `iin`, `surname`, `name`,..., function(err) { //вставка person
con.query("INSERT INTO `phone` (`id`, `phone`," ... function(err) { //вставка телефона
con.query("UPDATE xml_person SET done='4' WHERE id_xml_person='" + resultFromXml[x].id_xml_person, function(err) { //ставлю флаг, что строка обработана
x++;
}
}
});
}
});
}, 500);
}