Postgresql 如何在连接上设置transform_null_equals postgres参数?

Postgresql 如何在连接上设置transform_null_equals postgres参数?,postgresql,jdbc,hikaricp,Postgresql,Jdbc,Hikaricp,首先是一些上下文,以防它有助于你们理解为什么要写这篇文章,有时也会引出其他好的答案。我喜欢这个设置,因为它不是 sql column value=NULL,其中NULL表示未知 sql WHERE子句值=null,其中null表示null 标题中的设置基本上改变了postgres,因此WHERE子句中的null和列值都表示“未知”。然后我可以说WHERE c.col=null(这意味着查找c.col未知的任何列),我还可以说WHERE c.col=“value” 通过这种方式,在null语言

首先是一些上下文,以防它有助于你们理解为什么要写这篇文章,有时也会引出其他好的答案。我喜欢这个设置,因为它不是

  • sql column value=NULL,其中NULL表示未知
  • sql WHERE子句值=null,其中null表示null
标题中的设置基本上改变了postgres,因此WHERE子句中的null和列值都表示“未知”。然后我可以说WHERE c.col=null(这意味着查找c.col未知的任何列),我还可以说WHERE c.col=“value”

通过这种方式,在null语言中,我可以执行c.col=variable,对于未知的变量可以为null,对于已知的值可以为null。太好了

我意识到这违反了规范,但它使我们的团队超快速(这在我们的业务中更为重要)…我们的bug更少,查询更简单…天哪,更简单

现在,我们在用户身上设置了这个,但是我想通过连接来设置,这样当有人安装postgres时,它就可以神奇地工作,而不需要他们记住设置

  • 在jdbc中如何做
  • 更妙的是,在Hikari游泳池怎么办

  • 使用
    transform\u null\u equals
    编写查询时,您可能会遇到较少的麻烦,但我怀疑它们是否会表现得更好,因为这只会在优化查询之前将
    =null
    替换为
    IS null

    无论如何,您可以使用JDBC连接字符串中的
    options
    参数向服务器进程提供参数:

    jdbc:postgresql:dbname?user=myuser&password=mypwd&options=-ctransform\u null\u等于%3Don
    
    hmmm,这是为12级博士后准备的吗?这似乎对我不起作用。谢谢好的,有了jdbc,它就可以工作了。有了hikari+hibernate,情况就不一样了。hikari本身就是,但当hibernate调用hikari时,出于某种原因,hikari返回0个结果。这太恶心了,我不知道Hikari。它不会让您控制JDBC连接URL吗?