群里这几天一直有人要做类似merge或者replace的操作,嚷嚷表字段多 用function进行insert or update写起来麻烦。OK,下面贴一个 触发器进行replace的demo
写个触发器 插入之前执行触发器
-- 创建一个测试表
create table test(id int primary key , name varchar(50));
-- 触发器 插入前ID如果已经存在则替换name的值
CREATE OR REPLACE function _replace() RETURNS TRIGGER AS $INSERT$
declare
_has int ;
BEGIN
-- 判断ID 是否已经存在
select 1 from test where id = NEW.id into _has;
raise notice 'ddd:%' , _has;
if _has > 0 then
-- 存在 则更新 然后返回null
update test set name = NEW.name where id = NEW.id;
RETURN null;
end if;
-- 不存在 则返回 让执行该做的插入操作
return NEW;
END;
$INSERT$
LANGUAGE PLPGSQL;
-- 给表加上触发器 只针对insert
CREATE TRIGGER tbefore BEFORE INSERT ON test FOR EACH ROW EXECUTE PROCEDURE _replace();
-- 插入两个值
insert into test(id , name) values(1,'1');
insert into test(id , name) values(1,'6');
--查询
select * from test;
结果:
pumpkin=> select * from test;
id | name
----+------
1 | 6
(1 行记录)
- 浏览: 153161 次
- 性别:
- 来自: 西安
最新评论
-
jjxliu306:
windleos 写道jjxliu306 写道windleos ...
基于udig(开源GIS软件)二次开发(1) -
windleos:
jjxliu306 写道windleos 写道我下的eclip ...
基于udig(开源GIS软件)二次开发(1) -
jjxliu306:
windleos 写道我下的eclipse是4.4的,报错以后 ...
基于udig(开源GIS软件)二次开发(1) -
windleos:
我下的eclipse是4.4的,报错以后你说在udig.pro ...
基于udig(开源GIS软件)二次开发(1) -
jjxliu306:
liushuo_whu 写道如此好的博客竟然没有人顶啊谢谢
基于udig(开源GIS软件)二次开发(1)
相关推荐
PostgresSQL是一个很优秀的开源数据库,并提供了针对空间数据的存扩展;这个PPT介绍了PostgresSQL数据库的基本情况
postgres中文文档!
Create a usable and attractive login form using Bootstrap's styles, while ensuring the database table backing it is secure using Postgres' check constraints. See how creating an advanced Postgres ...
PostgresSQL的简明教程,里面包含了使用方法
postgres_v9.6.8 arm架构 国产操作系统 欧拉操作系统 eulerOS 免安装版本postgres,开箱即用 启动方式:./bin/pg_ctl -D data -l logfile start 默认用户名密码:postgres、ft@135246,也可重命名data目录后执行./...
linux下关于的postgres 主从 配置文档配置好了后,启动这台模拟宕掉的原主机,并使之与连接,并做他的备机
postgressql 连接数据库 和关闭数据库
postgres 代码生成器,自动生成3层结构。
针对两台服务器下的postgres数据库之间,实现无密码互相登录
Linux下postgres安装说明
postgres,postgis,openlayer,网页GIS开发,geoserver
suse postgres 开机启动
postgres数据库编程手册,html的文档,很好用的。
Postgres_Succinctly.pdf 最近要学习一下这个数据库,放在这里备份。
postgres的docker镜像,可以使用docker load < postgres_image.tar,把此镜像文件加入到docker服务管理的磁盘中,然后使用docker run使用镜像
postgres数据库中文手册,基本语言和编程规范
postgres数据库odbc数据源 用于odbc连接postgres数据库
提供在Windows和Linux下如如何配置postgres的debug
postgres 从入门到专家中文版
tomcat、JDK、postgres环境搭建