.returning() 不受 sqlite3 支持,不会有任何影响

.returning() is not supported by sqlite3 and will not have any effect

最近,我注意到控制台中的黄色警告说,

.returning() is not supported by sqlite3 and will not have any effect.

我将 sqlite3 模块与 knex.js 一起使用。它对输出没有任何影响,但知道它的价值很大。这是我的环境详细信息。

knex v0.19.1
sqlite3 v4.0.9
节点 v10.16.9
electron-builder v21.2.0
电子 v6.0.2

在您应用的某处调用了 .returning(...)。由于您使用的是 sqlite3 方言,因此该调用将被忽略,不会对 returned 数据产生任何影响。

例如:

await knex('table1').insert({ foo: 'bar' }).returning('*');

await knex('table1').insert({ foo: 'bar' });

将 return 在 sqlite 方言上完全相同。

SQLite 从 3.35.0 (2021-03-12) 版本开始支持 RETURNING 语法。 https://sqlite.org/lang_returning.html