节点 MSSQL 无法插入数组
Node MSSQL can't insert array
我想用数组数据一次插入多行。
我的数组看起来像这样
[ [ '1234' ],
[ '5678' ],
[ '9123' ]... ]
和我的查询代码
const sql = require('mssql');
const config = {
user: 'sa',
password: 'pass',
server: 'ip',
database: 'db'
};
async function get_numbers() {
try {
let pool = await new sql.ConnectionPool(config).connect();
var qstring = `INSERT INTO numbers (gen_number) VALUES ?`;
pool.request().query(qstring, mins, function (err, result) {
if (err) throw err;
});
//pool.close();
} catch (err) {
console.log(err);
}
};
但这给出了附近的错误语法?错误。
我假设您想将数组内容 1234,5678 ..
插入到数据库中。您可以使用
下面的查询
var array = [ [ '1234' ], [ '5678' ], [ '9123' ]... ];
var query = `var query = `INSERT INTO numbers (gen_number) VALUES ${array.join().split(",").map(i => '(' + i + ')').join()}``
这只是加入数组内容并为您提供一个与 SQL
语法相匹配的字符串,以便在一条语句中插入多个值。
上面的查询会得到类似于
的结果
"INSERT INTO numbers (gen_number) VALUES 1234,5678,9123"
mssql 库有一个 bulk 方法正是用于此目的。
const table = new sql.Table('numbers');
table.create = false; // presuming table already exists
table.columns.add('gen_number', sql.Int, { nullable: false });
// Add rows
numArr.forEach(x => table.rows.add(x));
const request = new sql.Request();
request.bulk(table, (err, result) => {
// ... error checks
})
我想用数组数据一次插入多行。
我的数组看起来像这样
[ [ '1234' ],
[ '5678' ],
[ '9123' ]... ]
和我的查询代码
const sql = require('mssql');
const config = {
user: 'sa',
password: 'pass',
server: 'ip',
database: 'db'
};
async function get_numbers() {
try {
let pool = await new sql.ConnectionPool(config).connect();
var qstring = `INSERT INTO numbers (gen_number) VALUES ?`;
pool.request().query(qstring, mins, function (err, result) {
if (err) throw err;
});
//pool.close();
} catch (err) {
console.log(err);
}
};
但这给出了附近的错误语法?错误。
我假设您想将数组内容 1234,5678 ..
插入到数据库中。您可以使用
下面的查询
var array = [ [ '1234' ], [ '5678' ], [ '9123' ]... ];
var query = `var query = `INSERT INTO numbers (gen_number) VALUES ${array.join().split(",").map(i => '(' + i + ')').join()}``
这只是加入数组内容并为您提供一个与 SQL
语法相匹配的字符串,以便在一条语句中插入多个值。
上面的查询会得到类似于
的结果"INSERT INTO numbers (gen_number) VALUES 1234,5678,9123"
mssql 库有一个 bulk 方法正是用于此目的。
const table = new sql.Table('numbers');
table.create = false; // presuming table already exists
table.columns.add('gen_number', sql.Int, { nullable: false });
// Add rows
numArr.forEach(x => table.rows.add(x));
const request = new sql.Request();
request.bulk(table, (err, result) => {
// ... error checks
})