我们目前使用mysql / knex,我将SQLite作为一个数据库添加到测试中。我得到了
Knex:警告- sqlite不支持插入默认值。设置
useNullAsDefault标志以隐藏此警告。(请参阅docs http://knexjs.org/#Builder-insert)。
Knex如何处理默认值?它只是删除任何默认值,还是在插入后添加默认值,如下面的UPDATE语句所示?
我不想更改我们所有的代码基(交换掉所有的默认值),试图做最小的更改,这将允许我在我们的测试中运行SQLite .担心这会带来错误。
发布于 2017-02-22 21:08:47
我正在学习knex.js,所以我可以在涉及PostgreSQL的项目中使用它。在尝试Sqlite的时候,我偶然发现了这个问题。
原来是记录在案!
如果希望将未定义的键替换为
NULL而不是DEFAULT,则可以在knex配置中提供useNullAsDefault配置参数。
他们给出了这个密码:
var knex = require('knex')({
client: 'sqlite3',
connection: {
filename: "./mydb.sqlite"
},
useNullAsDefault: true
});
knex('coords').insert([{x: 20}, {y: 30}, {x: 10, y: 20}])
// insert into `coords` (`x`, `y`) values (20, NULL), (NULL, 30), (10, 20)"这删除了我的警告信息。
https://stackoverflow.com/questions/41030694
复制相似问题