如何在postgresql中进行函数备份

时间:2014-05-26 12:02:44

标签: sql postgresql

我正在尝试使用此处描述的方法How to take backup of functions only in Postgres备份数据库中的函数。 但它显示错误<< was unexpected at this time

我在命令提示符中输入的代码如下所示。

psql.exe -U postgres -At dbname > /path/to/output/file.sql <<"__END__"
SELECT pg_get_functiondef(f.oid)
FROM pg_catalog.pg_proc f
INNER JOIN pg_catalog.pg_namespace n ON (f.pronamespace = n.oid)
WHERE n.nspname = 'public';
__END__

请帮忙。

2 个答案:

答案 0 :(得分:0)

我确定有办法实现,但最简单的方法就是将sql作为一行提供-c选项:

psql.exe -U postgres -At dbname -c "SELECT pg_get_functiondef(f.oid) FROM pg_catalog.pg_proc f INNER JOIN pg_catalog.pg_namespace n ON (f.pronamespace = n.oid) WHERE n.nspname = 'public'" > /path/to/output/file.sql

这也更便携,可以使用需要一行的工具,如cron等

答案 1 :(得分:0)

这是一个shell问题。

&LT;&LT;是类似Unix的shell的一个功能,而你似乎在使用Windows。

只需将查询文本保存到文件中,然后使用-f标志运行它。