一条语句插入多条数据
INSERT INTO table_name
(field1, field2,...fieldN)
VALUES
(valueA1,valueA2,...valueAN),
(valueB1,valueB2,...valueBN),
(valueC1,valueC2,...valueCN),
......;
sql语句如上
代码实现
//拿到对象数组 如果ID存在需要删除ID let objValues=objlist.map((item,index)=>{ let arr=Object.values(item) arr.unshift(ID) return arr })
let arr = dataArr.map(item => {
Object.keys(item).forEach(async key => {
strName = Object.keys(item);
});
return Object.values(item);
});
let ColumNames= JSON.stringify(strName)
.replace(/\[/g, "(")
.replace(/\]/g, ")")
.replace(/\"/g, "");
//将数组改造成(valueA1,valueA2,...valueAN)
let objValuesStr0=JSON.stringify(arr) let objValuesStrStr1=objValuesStrStr0.slice(1,objValuesStr0.length-1) let objValuesStrStr2=objValuesStrStr1.replace(/\[/g,"(") let objValuesStrStr3=objValuesStrStr2.replace(/\]/g,")") let objValuesStrStr4=objValuesStrStr3.replace(/\"/g,"'")
//插入数据库 const pool = await new sql.ConnectionPool(_this.config.配置。。。).connect(); const request = pool.request() let sql=`insert into 表 (${ColumNames}) values `+objValuesStr4 await request.query(sql);
细节说明: