- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在nodejs中有以下knex查询。此查询的目标是删除表 rule
中的所有行,这些行在以下三个表中都不是外键:rule_set
、rule_in_progress
和rule_pending
。也就是说,删除 rule
中基本上未使用的所有行。
deleteUnusedRules(txn) {
const conn = txn ? txn : knex;
return conn.table('rule').delete()
.whereNotIn('rule.id', function() {
this.table('rule_in_progress').select('rule_in_progress.rule_id')
.union(this.table('rule_pending').select('rule_pending.rule_id')
.union(this.table('rule_pending').select('rule_pending.rule_id')
.union(this.table('rule_set').select('rule_set.rule_id'))
)
);
});
}
但它抛出以下错误
stack=RangeError: Maximum call stack size exceeded
我在网上找不到任何解决方案。
最佳答案
我想因为您正在使用子查询构建器 this
来执行所有联合查询,所以 knex 内部的某些内容会对该查询进行循环引用...
基本上,每次调用 this.table
时,您都不会创建新的子查询,而是会修改同一个构建器。
也许您尝试这样做:
deleteUnusedRules(txn) {
const conn = txn ? txn : knex;
return conn.table('rule').delete()
.whereNotIn('rule.id', conn.table('rule_in_progress').select('rule_in_progress.rule_id')
.union(conn.table('rule_pending').select('rule_pending.rule_id')
.union(conn.table('rule_pending').select('rule_pending.rule_id')
.union(conn.table('rule_set').select('rule_set.rule_id'))
)
)
);
}
所有联合选择查询都是作为单独的查询构建器实例创建的,它们不共享状态。
关于node.js - KnexJS范围错误: Maximum call stack size exceeded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58629871/
在他们的website上,KnexJS 开发人员似乎声称可以使用 Browserify 捆绑该库并在浏览器中运行它。这实际上是如何运作的?您不需要基于套接字的连接来连接到目标数据库(浏览器 JavaS
我有一个查询如下: SET @count = 0; UPDATE table SET table.id = @count:= @count + 1 WHERE table.name = "name";
我正在寻找一个 javascript 库来管理 mysql 数据库,发现 Knexjs 非常适合我的需求,但我不想让数据库和表从 js 源文件中读取。 另一方面,我不能仅仅混淆 js,因为应用程序也无
我最近一直在使用 KnexJS,并且从 KnexJS 文档中获得了我需要的大部分内容,但是我有一些更复杂的 MySQL 查询,我无法自己将其“移植”到 Knex。我知道可以选择使用 .raw(),但我
我正在将 knexjs 与 postgrsql 一起使用,并且我正在尝试获取比当前日期和时间早的所有日期和时间的数据。例如我有这个数据 {
我正在构建一个 NodeJS API 后端并使用 Knex 来处理数据库迁移等。 我有 3 个表:stalls、markets 和 bookings 在我的 bookings 表中,我想引用 stal
我的问题是是否可以通过某种方式将 KnexJS 的字符编码更改为 utf8mb4。它似乎默认为 utf8。 当我尝试通过以下方式在 NodeJS 服务器上的当前 KnexJS 版本中创建一个表时 db
我需要将此 SQL 查询转换为 KnexJS 查询 SELECT Book.Title, Book.Number, Author.Name, Author_1.Name
我正在使用 Knex.JS 创建一个表, 表格中有一列表示货币值。 例如,这里是 amount 列: knex.schema.createTable('payment', function(table
我在 PostgreSQL 中有一个更新插入查询,例如: INSERT INTO table (id, name) values (1, 'Gabbar') ON CONFLICT (id)
我目前使用 knexjs.org , promise 而不是常规回调并使用池连接进行 SQL 查询。第一次,它运行顺利。但是现在我通常会遇到池连接错误。代码是这样的 knex('user_detail
我遇到了这个问题,我有一组数据要使用 knexjs 插入。但我希望插入忽略重复项,即仅在数据不存在时才插入。我可以做到这一点 knex('rates').insert(allRates); 但我想知道
我对 Node、KnexJS 和 Promise 非常陌生,我正在尝试构建一个简单的循环来查询项目,然后添加与它们关联的图片。 我查看了这个答案,虽然它教了一些东西,但我认为它不适用于我的情况:Kne
我在学习 BookshelfJS/KnexJS(从 SequelizeJS 切换)的过程中遇到了将数据导入多个表的问题,这些表是通过 KnexJS 中的迁移功能创建的。有 4 个表: 服务器 oper
我在 KnexJS 中使用 PostgreSQL 进行以下迁移时遇到问题: exports.up = (knex) => { knex.raw('CREATE EXTENSION IF NOT
我正在使用 Knexjs 和 Promise 运行多个选择查询。我需要所有查询在发送结果之前返回一个值,我已经能够实现这一点。但是我不认为代码非常优化。 knex(table).select('CRM
我正在构建一个使用 node + express + postgresql + knexjs ORM 的应用程序。我正在尝试运行迁移: knex 迁移:最新 但我的控制台一直在返回: 使用环境:开发
我在生产中遇到严重问题,导致应用程序无响应并输出以下错误: Knex: Timeout acquiring a connection. The pool is probably full. Are y
我在 Postgres 中有一列存储一些 JSON 数据。 JSON 没有定义的架构,但应该可以搜索具有某个指定键的所有记录。 我正在使用 KnexJS 构建查询,到目前为止我想到了这个: tx.se
我是 PostgreSQL 和 Node 的新手。我正在使用 knex.js 库。我需要创建角色并将其分配给我在 PostgreSQL 中创建的每个表。我不确定如何实现它。是不是要在表迁移的时候做?或
我是一名优秀的程序员,十分优秀!