如何获取仍未创建的数据库项的ID

时间:2017-03-27 19:32:23

标签: javascript mysql node.js express

当前正在运行的代码:第一个连接查询使用表单中填写的信息向数据库添加新用户,for循环内的第二个连接查询检查数据库是否已存在兴趣在创建新名称之前给出名称。缺少的部分是重要的部分。

问题:如果既没有创建用户也没有创建兴趣,我如何链接添加到数据库的新兴趣或现有的兴趣。我知道在链接它们之前我需要运行下面的两个查询以确保它们存在,但是我如何获得新用户的ID或新的兴趣?这一切都发生在注册表格的发布请求上。

connection.query('INSERT INTO User set ? ', [newUserData], function (err) {
    if (err) { throw err; }
    res.redirect('/');
});

let interests = {
    userInterests: req.body.signupNewTagInterests.split(",")
}
for (let i = 0; i < interests.userInterests.length; i++) {
    connection.query('SELECT title FROM Interest WHERE title =?', [interests.userInterests[i]], function (err, results) {
        if (err) { throw err; }
        if (typeof results[0] === 'undefined') {
            connection.query('INSERT INTO Interest (title) Value(?) ', [interests.userInterests[i]], function (err) {
                if (err) { throw err; }
            });
        }
    });
}

表格:
用户:
ID
FIRST_NAME
等...

兴趣:
ID
标题

User_Interests:
USER_ID
Interest_ID

2 个答案:

答案 0 :(得分:1)

首先,您需要插入用户,无论兴趣ID存在于何处。

然后,如果不存在,您需要将兴趣插入兴趣表

完成上述部分后,您可以将这两件事与兴趣标题联系起来,然后在用户兴趣表中插入新记录。

反之亦然。

答案 1 :(得分:-1)

如果您想获得输入的ID,可以使用以下查询:

 SELECT LAST_INSERT_ID();

或通过你的框架/ MySQL库(用任何语言)调用

mysql_insert_id() 
查询后立即

。然后,您可以将其用作兴趣数据库中的user_id检查。