数据库 批量查询结果作为更新的值
2017-07-03 18:08
399 查看
1. 数据库批量更新。
业务需求:
须要将a表中 type为1 的数据的source_id更新为新的id。
由于之前的id是存储在p_server中。如今更新到了server_info表中
2. 更新数据库中的值。可是这些值存在不同的表中
业务需求:
须要将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_id and 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''<httpPort>([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;
相关文章推荐
- 数据库 批量查询结果作为更新的值
- 数据库_基础知识_MySQL_UpdateSelect(根据查询出来的结果批量更新)
- Mysql查询结果作为另一张表的更新内容
- Oracle 数据库已更新 页面查询结果未更新原因。
- mysql基于查询结果批量插入和更新
- 数据库查询结果作为表
- 例题:数据库查询结果作为一个表
- mysql 常用命令,连接数据库,查看建表语句,批量导入数据,批量更新数据,连接查询
- listctrl作为数据库查询结果显示的应用
- Java数据库编程中查询结果的表格式输出
- PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
- Java数据库编程中查询结果的表格式输出
- MySQL查询结果复制到新表(更新、插入)
- Java获取数据库各种查询结果
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
- 使用DataAdpater自动批量更新DataSet中的数据到数据库
- c#.net数据库连接 查询,删除 ,插入 ,更新
- 跨数据库服务器查询和跨表更新
- Android Sqlite数据库执行插入查询更新删除的操作对比