• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    postgresql 实现replace into功能的代码

    PostgreSQL 9.5-

    使用函数或with实现

    create table test(id int primary key, info text, crt_time timestamp);
    with upsert as (update test set info='test',crt_time=now() where id=1 returning *) insert into test select 1,'test',now() where not exists (select 1 from upsert where id=1); 

    PostgreSQL 9.5+

    PostgreSQL 9.5 引入了一项新功能,UPSERT(insert on conflict do),当插入遇到约束错误时,直接返回,或者改为执行UPDATE。

    INSERT INTO table_name VALUES() ON conflict (唯一索引字段) DO
    UPDATE ...

    补充:PostgreSQL中select into用法总结

    在普通的sql中,postgresql支持seelct......into......

    但是动态调用时候不支持select......into......

    比如:

    create or replace FUNCTION test () RETURNS void AS
    $body$
    DECLARE
    toalnum int;
    BEGIN
    execute 'select sum(colname) into totalnum';
    return;
    END;
    $body$
    LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

    以上情况会报错。。。。。

    因该修改为如下

    create or replace FUNCTION test () RETURNS void AS
    $body$
    DECLARE
    toalnum int;
    BEGIN
    execute 'select sum(colname)' into totalnum;
    return;
    END;
    $body$
    LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • 解决PostgreSQL Array使用中的一些小问题
    • postgresql 中的 like 查询优化方案
    • 解析PostgreSQL中Oid和Relfilenode的映射问题
    • PostgreSQL regexp_matches替换like模糊查询的操作
    • PostgreSQL 禁用全表扫描的实现
    上一篇:postgresql 替换空格 换行和回车的操作
    下一篇:PostgreSQL regexp_matches替换like模糊查询的操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    postgresql 实现replace into功能的代码 postgresql,实现,replace,into,