日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

postgresql中自定义函数脚本的备份及恢复

發布時間:2025/5/22 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql中自定义函数脚本的备份及恢复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【轉自 housonglin1213 的博客】http://blog.csdn.net/housonglin1213/article/details/51005540

1、自定義函數腳本備份

CREATE OR REPLACE FUNCTION function_sql_dump() RETURNS void AS $BODY$ DECLARE my_cur refcursor; isexisted integer:=0; oid_var oid; role_oid oid; BEGIN --判斷臨時表是否已經存在 select count(*) into isexisted from pg_class where relname = 'function_sql_table'; --如果已經存在則刪除 IF(isexisted !=0)THEN DROP TABLE function_sql_table; END IF; --創建臨時表-用于存儲函數sql語句 CREATE TABLE function_sql_table(t TEXT); select oid into role_oid from pg_roles where rolname='smartsys'; IF role_oid is null THEN return; END IF; OPEN my_cur FOR select oid from pg_proc where proowner=role_oid order by oid; LOOP FETCH my_cur INTO oid_var; IF NOT FOUND THEN EXIT; END IF; INSERT INTO function_sql_table(t) VALUES (pg_get_functiondef(oid_var)); END LOOP; CLOSE my_cur; COPY function_sql_table TO 'D:/PostgreSQL/9.5/function_sql_bak.sql'; end $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION function_sql_dump() OWNER TO smartsys;

補充說明:備份出的sql文件是存儲于postgresql數據庫服務所在服務器的目錄中的。smartsys為數據庫用戶名。
注:pg_get_functiondef(oid_var)方法返回text類型自帶換行(效果如下圖,需要縱向拉伸才能看到全部信息)

2、已備份自定義函數腳本的恢復

CREATE OR REPLACE FUNCTION function_sql_restore(func_name character varying) RETURNS void AS $BODY$ DECLARE my_cur refcursor; isexisted integer:=0; oid_var oid; sql_str text; sql_var varchar(1024); BEGIN --判斷臨時表是否已經存在 select count(*) into isexisted from pg_class where relname = 'function_sql_table'; --如果已經存在則刪除 IF(isexisted !=0)THEN DROP TABLE function_sql_table; END IF; --創建臨時表-用于存儲函數sql語句 CREATE TABLE function_sql_table(t TEXT); COPY function_sql_table from 'D:/PostgreSQL/9.5/function_sql_bak.sql'; IF(func_name is not null)THEN OPEN my_cur FOR select t from function_sql_table where t like '%'||func_name||'%'; ELSE OPEN my_cur FOR select t from function_sql_table; END IF; LOOP FETCH my_cur INTO sql_str; IF NOT FOUND THEN EXIT; END IF; execute sql_str; END LOOP; CLOSE my_cur; end $BODY$ LANGUAGE plpgsql VOLATILE COST 100;

其中該方法中的參數:func_name為函數名稱,即:指定要恢復的函數。

【本文系轉載,版權歸原作者 housonglin1213 所有】
http://blog.csdn.net/housonglin1213/article/details/51005540

總結

以上是生活随笔為你收集整理的postgresql中自定义函数脚本的备份及恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。