节点mysql插入到多对多表

时间:2016-05-16 23:55:23

标签: mysql sql node.js

我正在使用nodejs来解析csv文件并在mysql中保存有关它的信息。我正在尝试将数据插入到多个表中,但是希望将id插入到数据库中以便在anohter查询中使用?

con.query("INSERT INTO TransactionDescription SET ? ON DUPLICATE KEY UPDATE Description= VALUES(Description)", trandesc, function(err, res) {
                            if (err) throw err;


                        });

我可以返回生成的id,以便我可以在此查询中使用它们吗?

  con.query("INSERT INTO Transaction SET ? ", tran, function(err, res) {
                            if (err) throw err;
                        });

2 个答案:

答案 0 :(得分:1)

如果您使用node-mysql,则只需获取插入的ID(see doc):

con.query("INSERT INTO TransactionDescription SET ? ON DUPLICATE KEY UPDATE Description= VALUES(Description)", trandesc, function(err, res) {
  if (err) throw err;
  // res.insertId from above query as second query parameter
  con.query("INSERT INTO Transaction SET ? ", res.insertId, function(err, res) {
    if (err) throw err;
  });
});

答案 1 :(得分:0)

我建议使用knex.js,这样可以简化编写查询的过程。此外,它还可以轻松访问生成的ID,例如

knex.insert({
  first_name: firstName,
  last_name: lastName,
  email: email,
  phone_number: phoneNumber
})
.returning('id')
.into('person')
.then(function (id) {
  // use id here
});