【问题标题】:How to take functions backup in postgresql如何在 postgresql 中进行函数备份
【发布时间】:2014-05-26 12:02:43
【问题描述】:

我正在尝试使用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__

请帮忙。

【问题讨论】:

  • 我不认为你想要“__END__”周围的引号
  • @Loopo 显示同样的错误信息。
  • 另外,您可以尝试在输入重定向之前添加 -c ... 所以 ...file.sql -c
  • @Loopo 仍然无法正常工作。
  • 只需将其全部放在一行上并使用 -c:psql.exe -U postgres -At dbname -c "your multi-line sql as one line" &gt; /path/to/output/file.sql

标签: sql postgresql


【解决方案1】:

这是一个shell问题。

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

【讨论】:

  • 我将查询放在一个文本文件中并使用 psql -U postgres -d databasename -f D:\q uery.sql >D:/file.sql
【解决方案2】:

我确定有办法做到这一点,但最简单的方法就是将 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 等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2017-02-11
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多