我try 编写以下命令:
DELETE FROM locations ORDER BY id DESC LIMIT 1
在knex上.js.
knex('locations').delete().orderBy('id', 'desc').limit(1).toString()
但它回来了
DELETE FROM locations
为什么?
我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作为原始查询.