Показать сообщение отдельно
  #8 (permalink)  
Старый 06.12.2017, 13:04
Интересующийся
Отправить личное сообщение для jtag Посмотреть профиль Найти все сообщения от jtag
 
Регистрация: 12.01.2016
Сообщений: 19

Незнаю можно ли тут обсуждать БД, но вот что у меня получается. Вначала я делаю выборку одним разом всех не обработанных строк. Потом в цикле начинаю обрабатывать каждую строку, т.е. делаю запрос в БД, существует ли такой ИИН, если нет такого, то вставляю в базу. Потом вставляю телефон, и делаю запрос - отмечаю необработанную строку флагом "обрабатано". Получается, мне нужно все используемые таблицы скопировать и потом с ними в обычном цикле 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);
		
}
Ответить с цитированием