博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库 批量查询结果作为更新的值
阅读量:6180 次
发布时间:2019-06-21

本文共 1638 字,大约阅读时间需要 5 分钟。

1. 数据库批量更新。

业务需求:

须要将a表中 type为1 的数据的source_id更新为新的id。

由于之前的id是存储在p_server中。如今更新到了server_info表中

update a set source_id = s.server_id  from (select p_server.p_id,p_server.index_code,server_info.server_id from p_server join server_info on p_server.index_code = server_info.index_code) s where a.source_id = s.p_idand type = 1;

2. 更新数据库中的值。可是这些值存在不同的表中

CREATE OR REPLACE FUNCTION replace_img_url()  RETURNS SETOF refcursor AS$BODY$ DECLARE _ss_urls record;	updateVehicle "varchar" := '';	updateImage "varchar" := '';ss_ip "varchar" := '';  BEGIN          for _ss_urls IN EXECUTE 'select svr_id as server_id,svr_ip||'':''||substring(svr_config,E''
([0-9]*)?'') as url from server_multi_ip where svr_type = 20002' loop updateImage := 'update alarm_image set image_url = tep.url from (select alarm_event_id as event_id,time_happen,rule_id,sort_num, replace(image_url, '''||_ss_urls.url||''','''||_ss_urls.server_id||''') as url from alarm_image) tep where alarm_image.time_happen = tep.time_happen and alarm_image.alarm_event_id = tep.event_id and alarm_image.rule_id = tep.rule_id and alarm_image.sort_num = tep.sort_num'; execute updateImage; updateVehicle :='update vehicle_recognition set vehicle_image_url = tep.url from (select vehicle_recog_id as id,vehicle_recog_id, replace(vehicle_image_url, '''||_ss_urls.url||''', '''||_ss_urls.server_id||''') as url from vehicle_recognition) tep where vehicle_recognition.vehicle_recog_id = tep.id'; execute updateVehicle; end loop; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000;ALTER FUNCTION replace_img_url() OWNER TO postgres;

转载地址:http://lpbda.baihongyu.com/

你可能感兴趣的文章
第二章 BIO与NIO
查看>>
云主机如何使用?
查看>>
[WCF]设置拦截器捕捉到request和reply消息
查看>>
windows下net命令失败
查看>>
【原创】Kafka 0.11消息设计
查看>>
第一课——进阶高手的大门
查看>>
利用注册表写开机启动程序(转载)
查看>>
CSDN-markdown编辑器之从线上导入Markdown文件
查看>>
Python- requests详解
查看>>
关于Unity中粒子效果的使用
查看>>
View学习(四)-View的绘制(draw)过程
查看>>
Android 开发之 ---- 底层驱动开发(一)
查看>>
Java 征途:行者的地图
查看>>
GDB 自动化操作的技术-PYTHON
查看>>
执行时的C程序
查看>>
JAVA设计模式之:命令模式
查看>>
自动登录——(三)
查看>>
LINUX中如何查看某个进程打开的网络链接有多少
查看>>
微软牛津计划,轻松打造自然语言应用
查看>>
ES正常停止步骤
查看>>