将数组数据批量插入到使用objection.js的mysql数据库中
我有一个数组
newData = [{ sId: 'XXXXXX', itemlName: 'LSストレッ', iCode: 'XXXXXX', iType: '', skus: 'XXXXXXX', iLevel: 'L2', cCode: '88', cName: 'Other', sCode: '999', sName: 'No Control', pLengthCode: '988', core: 'N', sCode: '1', dCode: 'XX', gDeptCode: 'XX', gDeptName: 'Women\\\'s Items', rCode: 'jqs' },{ sId: 'XXXXXX', itemlName: 'LSストレッ', iCode: 'XXXXXX', iType: '', skus: 'XXXXXXX', iLevel: 'L2', cCode: '88', cName: 'Other', sCode: '999', sName: 'No Control', pLengthCode: '988', core: 'N', sCode: '1', dCode: 'XX', gDeptCode: 'XX', gDeptName: 'Women\\\'s Items', rCode: 'jqs' }]
我想使用objection.js将newData
插入到mysql数据库中。 但是,当我运行我的节点应用程序,我得到的错误说:
错误:批量插入仅适用于Postgresql
我的插入代码是 – :
samplemodel.query().insert( newData );
如何使用objection.js在mysql数据库中执行批量插入数组数据?
错误:批量插入仅适用于Postgresql
那么,这意味着你需要Postgres而不是Mysql来使它工作。
EDIT1:
从文档:
如果您使用的是Postgres,插入是分批完成的,以获得最佳性能。 在其他数据库上,每次需要插入一行。 这是因为postgresql是唯一的数据库引擎,它返回所有插入行的标识符,而不仅仅是第一个或最后一个。
这意味着如果你正在使用mysql,你应该这样做
samplemodel.query().insert(data);
对于“newData”数组中的每个元素。
你可以打电话
samplemodel.query().insertWithRelated( newData );
它在需要时使用多个查询,并与所有数据库协同工作。