I try write this command:
DELETE FROM locations ORDER BY id DESC LIMIT 1
on knex.js. I write this code:
knex('locations').delete().orderBy('id', 'desc').limit(1).toString()
But it return
DELETE FROM locations
Why?
Because LIMIT is not supported by Postgres and Knex is supposed to be compatible with both MySQL and PostgreSQL. See GitHub issue:
[...] this syntax isn't supported in Postgres, so that might be a bit unexpected if it's possible in one database and not another [...]
Please open a new feature request if you need this functionality to be changed.
It was mentioned there that it works since 0.6 but I can't verify that, it seems still to be not working, and that seems to be a design choice. (Personally I find this quite problematic because there is no error, you just silently get everything deleted.)
The only way to handle a DELETE LIMIT statement would be as raw query with knex.raw then.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With