postgresql 实现replace into功能的代码

 更新时间:2021年01月27日 10:03:55   作者:沧溟111  
这篇文章主要介绍了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安装、配置及简单使用方法

    PostgreSQL安装、配置及简单使用方法

    这篇文章主要介绍了PostgreSQL安装及简单使用方法,需要的朋友可以参考下
    2016-11-11
  • postgresql查询每个月的最后一天日期并对未查到的日期结果补0(操作示例)

    postgresql查询每个月的最后一天日期并对未查到的日期结果补0(操作示例)

    这篇文章主要介绍了postgresql查询每个月的最后一天日期,并对未查到的日期结果补0,pgsql需要使用函数使用date_trunc()函数找到指定月第一天,然后对该日期先加一个月在减一个月就能得到你传给的日期的最后一天日期,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • PostgreSQL 重复数据处理的操作方法

    PostgreSQL 重复数据处理的操作方法

    这篇文章主要介绍了PostgreSQL 重复数据处理的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • PostgreSQL 默认权限查看方式

    PostgreSQL 默认权限查看方式

    这篇文章主要介绍了PostgreSQL 默认权限查看方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgreSQL中的row_number() 与distinct用法说明

    postgreSQL中的row_number() 与distinct用法说明

    这篇文章主要介绍了postgreSQL中的row_number() 与distinct用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Windows 系统 PostgreSQL 手工安装配置方法

    Windows 系统 PostgreSQL 手工安装配置方法

    这篇文章主要介绍了Windows 系统 PostgreSQL 手工安装配置方法,本文主要说一下在 Windows 系统中安装 PostgreSQL 的方法,我这里没有采用 exe 安装包的形式去安装,EDB 发布的那个 exe 安装包形式的对于中文环境数据库的排序规则设定有问题,需要的朋友可以参考下
    2022-09-09
  • Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作方法

    Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作方法

    最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几个数据库都是运行在 Windows服务器的 PostgreSQL 14,需要的朋友可以参考下
    2022-10-10
  • Postgresql 截取字符串的案例

    Postgresql 截取字符串的案例

    这篇文章主要介绍了Postgresql 截取字符串的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL如何按照某一字段去重,并显示其他字段信息

    PostgreSQL如何按照某一字段去重,并显示其他字段信息

    这篇文章主要介绍了PostgreSQL如何按照某一字段去重,并显示其他字段信息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • PostgreSQL LIST、RANGE 表分区的实现方案

    PostgreSQL LIST、RANGE 表分区的实现方案

    这篇文章主要介绍了PostgreSQL LIST、RANGE 表分区的实现方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论