Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Knex.js时发生大容量插入错误:bind消息提供了X个参数,但准备好了语句"&引用;需要Y_Javascript_Node.js_Database_Postgresql_Knex.js - Fatal编程技术网

Javascript 使用Knex.js时发生大容量插入错误:bind消息提供了X个参数,但准备好了语句"&引用;需要Y

Javascript 使用Knex.js时发生大容量插入错误:bind消息提供了X个参数,但准备好了语句"&引用;需要Y,javascript,node.js,database,postgresql,knex.js,Javascript,Node.js,Database,Postgresql,Knex.js,使用Knex.js对PostgreSQL 11.2进行大插入时 await knex(myTable).insert(largeArray); 我们得到了错误 bind消息提供47078个参数,但准备好的语句“”需要9353190 问题:有没有一种方法可以在Knex.js中不使用绑定进行大型插入?或者在PostgreSQL中是否有一个参数可以更改以允许像这样的大型插入 我相信我已经使用Sequelize.js ORM来执行类似大小的插入(大小是这个的1/2),而没有这样的错误,但是我更愿意不使

使用Knex.js对PostgreSQL 11.2进行大插入时

await knex(myTable).insert(largeArray);
我们得到了错误

bind消息提供47078个参数,但准备好的语句“”需要9353190

问题:有没有一种方法可以在Knex.js中不使用绑定进行大型插入?或者在PostgreSQL中是否有一个参数可以更改以允许像这样的大型插入

我相信我已经使用Sequelize.js ORM来执行类似大小的插入(大小是这个的1/2),而没有这样的错误,但是我更愿意不使用ORM用于我们当前的目的


使用knex 0.20.9、Node.js 12.14.1、PostgreSQL 11.2、TimescaleDB 1.6.0、Ubuntu 18.04.3,您需要批量添加数据。knex中有一个名为
batchInsert()
的实用函数来帮助您完成这项工作。数据库的语句大小/绑定数量有限。Sequelize可能在内部执行批处理,因为它无法覆盖数据库服务器设置的限制

如果你不想使用ORM,你可以试试
objective.js
,它更像是knex上的一个高级助手库,用于提供常用的东西,而不是真正的ORM