带有表名称引号的knex查询

时间:2018-02-02 21:17:12

标签: node.js postgresql knex.js

我有一个查询,如下所示返回代码不为空的用户信息

  

从“dev.user”中选择名称,年龄,其中代码不为空

返回预期输出

在knex我正在做

  

knex( “用户”)。选择( '姓名', '年龄')。whereNotNull( '代码')

它返回空!

调试查询返回如下

  

从“user”中选择“name”,“age”,其中“code”不为null   knex( “dev.user”)。选择( '姓名', '年龄')。whereNotNull( '代码')

调试查询返回如下

  

从“dev”选择“name”,“age”。“user”,其中“code”不为空

首先,当我初始化knex时,即使我提供了模式,我也设置了不起作用的模式,它生成查询为“dev”。“user”而不是“dev.user”

任何指针都会有所帮助

1 个答案:

答案 0 :(得分:0)

从文档中看,您应该使用.withSchema()。 (see link

  

注意:标识符语法没有选择模式的地方,所以如果你   正在做schemaName.tableName,查询可能会出错。使用   .withSchema('schemaName')代替。

这将是:

knex("user")
   .withSchema("dev")
   .select('name','age').whereNotNull('code')

我自己没有必须包含一个模式,所以祝你好运。

加里。