美文网首页
postgresql数据库初次使用

postgresql数据库初次使用

作者: 小青多多 | 来源:发表于2024-02-04 12:06 被阅读0次

    项目由于业务的需要,由之前的mysql数据库换成了postgresql数据库,需要对项目里的sql语句以及一些代码报错的地方进行修改,具体有如下的几个改动点:

    1、是否空判断的函数替换

    mysql中的ifnull()函数对应postgresql的coalesce

    coalesce('字段名称','期望值')

    这里我没有做这样的替换,而是改成了(case when 条件 then 期望值 else 默认值 end),因为case when可以适用所有的数据库

    2、比较时间差大小的函数

    date_part('second', (now() - create_date))  --这个函数计算的时间差,只是计算了秒位上的差,并没有计算分、时、天、月、年上差的秒数。

    extract(epoch from (now() - create_date))  --这个计算的两个时间点的差的所有秒数。

    extract(epoch from (now() - to_timestamp('2024-02-01 11:06:00','yyyy-mm-dd HH24:mi:ss')))

    3、update语句的修改

    postgresql 两表关联更新

    UPDATE 要更新的表

    SET 字段1 = cqt.字段1,

    字段2 = cqt.字段2,

    FROM

        数据来源表 cqt

    WHERE

        要更新的表.bsm = cqt.bsm

    注意:where条件里,两个表的字段名如果一样,一定要加表别名,否则查询的是错误的。set后面的字段不能加表别名,否则报错。

    4、代码里主要是变量的类型要和数据库里字段的类型保持一致,否则就报错

    比如数据库字段是数字类型,而代码里变量的类型是字符串类型。另外在写sql语句的时候,条件两边的字段类型要一致,如果是常量也要保持类型一致

    mysql数据库类型不一致,会隐形转换,如果有索引就不走索引的,查询效率会很低。postgresql数据库直接就报错了,需要我们严格按照类型一致来写sql语句。

    相关文章

      网友评论

          本文标题:postgresql数据库初次使用

          本文链接:https://www.haomeiwen.com/subject/gwdfadtx.html