如何使用节点 js mysql 插入记录(如果不存在)并在存在(更新插入)时更新?
How to insert a record if not existing and update if existing (upsert) using node js mysql?
这是我的插入查询,现在我希望它使用 UPSERT 方法修改它以检查记录是否存在,如果不存在则更新 insert.Here 是我的插入部分。
jsonObj = JSON.parse(jsonData);
if (jsonObj.hasOwnProperty("PE")) {
msgId = parseInt(jsonObj["PE"]);
if (msgId == XEPT_EVENT_ID) {
var pe = jsonObj["PE"];
var uid = jsonObj["UID"];
var mac = jsonObj["MAC"];
var time = jsonObj["TIM"];
var records = jsonObj["Record"];
var digital_input = [];
records.forEach(rec => {
digital_input.push(rec[3]);
});
if (typeof con !== 'undefined' && con) {
con.connect();
var sql = "INSERT INTO sierra_ips.iot_output_log (device_code, device_id, last_updated_time, digital_input_0, digital_input_1, digital_input_2, digital_input_3, digital_input_4, digital_input_5, digital_input_6, digital_input_7)VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
con.query(sql, [uid, mac, time, digital_input[0], digital_input[1], digital_input[2], digital_input[3], digital_input[4], digital_input[5], digital_input[6], digital_input[7]],
function (err, result) {
if (err) throw err;
console.log("Record inserted");
}
);
}
}
}
我用这种方式得到了答案,
var mysql = require('mysql');
const upsert = require('mysql-upsert');
const table = 'table name'
const data = [
{ col_name: 'value' }]#your data with columns
var con = mysql.createConnection({
host: "",
user: "",
password: "b",
database: ""#config db connection
});
const { affectedRows } = upsert(con)(table, data)
con.end()
这里有参考 link = [https://www.npmjs.com/package/mysql-upsert][1]
这是我的插入查询,现在我希望它使用 UPSERT 方法修改它以检查记录是否存在,如果不存在则更新 insert.Here 是我的插入部分。
jsonObj = JSON.parse(jsonData);
if (jsonObj.hasOwnProperty("PE")) {
msgId = parseInt(jsonObj["PE"]);
if (msgId == XEPT_EVENT_ID) {
var pe = jsonObj["PE"];
var uid = jsonObj["UID"];
var mac = jsonObj["MAC"];
var time = jsonObj["TIM"];
var records = jsonObj["Record"];
var digital_input = [];
records.forEach(rec => {
digital_input.push(rec[3]);
});
if (typeof con !== 'undefined' && con) {
con.connect();
var sql = "INSERT INTO sierra_ips.iot_output_log (device_code, device_id, last_updated_time, digital_input_0, digital_input_1, digital_input_2, digital_input_3, digital_input_4, digital_input_5, digital_input_6, digital_input_7)VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
con.query(sql, [uid, mac, time, digital_input[0], digital_input[1], digital_input[2], digital_input[3], digital_input[4], digital_input[5], digital_input[6], digital_input[7]],
function (err, result) {
if (err) throw err;
console.log("Record inserted");
}
);
}
}
}
我用这种方式得到了答案,
var mysql = require('mysql');
const upsert = require('mysql-upsert');
const table = 'table name'
const data = [
{ col_name: 'value' }]#your data with columns
var con = mysql.createConnection({
host: "",
user: "",
password: "b",
database: ""#config db connection
});
const { affectedRows } = upsert(con)(table, data)
con.end()
这里有参考 link = [https://www.npmjs.com/package/mysql-upsert][1]