Пакетная вставка массива в MySQL и пропустить дубликаты или записи, которые не удалось JSON в качестве ответа - PullRequest
0 голосов
/ 05 мая 2019

У меня есть API, который проверяет, существуют ли данные в базе данных, и если нет, он будет вставлять, но если он обнаруживает, что данные существуют, он показывает ответ. Мне нужно пропустить существующие данные и вставить остальные данные и дать мне ответ о неудачных строках данных. Массив данных огромен, так как я массово вставляю данные. Мне нужно только пропустить существующие записи и вставить оставшиеся данные из массива и дать ошибочные или повторяющиеся строки в качестве ответа

router.post('/saveuser', function(req, res) {
    let users = req.body.users; 
    for (let i = 0; i < users.length; i++) {
        let email = req.body.users[i].email;
        let username = req.body.users[i].username;
        let password = req.body.users[i].password;

        db.mycon.query('SELECT * FROM test WHERE email = ?', [email], function(error,rows, result) {
             if(rows.length > 0){
                res.json({
                   message: "Email exists"
                  });
            }else {
                //check username exists
                db.mycon.query('select * from test where email = ?', [username], function(err, rows, result) {
                    if (err) throw err;
                    if(rows.length > 0){
                        res.json({
                          message: "Username exists"
                        });
                    }else {
                        db.mycon.query('INSERT INTO test(username, email, password) VALUES(?, ?, ?)', [username, email, password], function(err, result) {
                          if (err) throw err;
                          res.json({
                            success: "1",
                             message: "registered",
                             data: result.affectedRows
                            });
                        });
                    }
                });
            }

        })
    }  
});

Любая подсказка будет приветствоваться, так как я потратил много времени, пытаясь обойти ее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...