我try 编写以下命令:

DELETE FROM locations ORDER BY id DESC LIMIT 1

在knex上.js.

knex('locations').delete().orderBy('id', 'desc').limit(1).toString()

但它回来了

DELETE FROM locations

为什么?

推荐答案

因为LIMIT不受Postgres支持,而Knex应该与MySQL和PostgreSQL兼容.参见GitHub issue:

[…]这种语法在Postgres中不受支持,因此,如果在一个数据库而不是另一个数据库中可以使用,那么这可能有点意外[…]

如果需要更改此功能,请打开新功能请求.

有人提到它从0.6开始就可以工作,但我无法验证,它似乎仍然不工作,这似乎是一种设计 Select .(就我个人而言,我觉得这很有问题,因为没有错误,您只是默默地删除了所有内容.)

处理DELETE LIMIT语句的唯一方法是使用knex.raw then作为原始查询.

Javascript相关问答推荐

提交表格后保留Web表格中的收件箱值?

我可以使用CSS有效地实现最大宽度=100%和最大高度=100%,而无需父母有明确的/固定的宽度和高度,替代方法吗?

我怎么才能得到Kotlin的密文?

提交链接到AJAX数据结果的表单

向数组中的对象添加键而不改变原始变量

令牌JWT未过期

重新呈现-react -筛选数据过多

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时

表单数据中未定义的数组键

需要RTK-在ReactJS中查询多个组件的Mutations 数据

需要刷新以查看Mern堆栈应用程序中的更改

当达到高度限制时,如何裁剪图像?使用html和css

当S点击按钮时,我如何才能改变它的样式?

material UI自动完成全宽

使用jQuery每隔几秒钟突出显示列表中的不同单词

如果我将高度设置为其内容的100%,则在Java脚本中拖动以调整面板大小时会冻结

JavaScript -如何跳过某个字符(S)来打乱字符串中的字符

错误400:当我试图在React中使用put方法时,该字段是必需的

元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但GET:Object.在Reaction项目中

Oracle APEX-如何调用Java脚本函数