您现在的位置是:网站首页> 编程资料编程资料
postgresql 实现replace into功能的代码_PostgreSQL_
2023-05-27
428人已围观
简介 postgresql 实现replace into功能的代码_PostgreSQL_
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_
- pg中replace和translate的用法说明(数据少的中文排序)_PostgreSQL_
- PostgreSQL 远程连接配置操作_PostgreSQL_
- postgreSQL中的内连接和外连接实现操作_PostgreSQL_
- postgreSQL中的case用法说明_PostgreSQL_
- 基于postgreSql 常用查询小结_PostgreSQL_
- postgresql数据库 timescaledb 时序库 把大数据量表转换为超表的问题_PostgreSQL_
- Postgresql 数据库权限功能的使用总结_PostgreSQL_
- postgresql 删除重复数据的几种方法小结_PostgreSQL_
- Postgresql 查看SQL语句执行效率的操作_PostgreSQL_
