PostgreSQL pg_dump

use*_*766 10 postgresql

我正在尝试使用该命令创建数据库备份

pg_dump -U vdc(old db) | psql vdc_bak.sql(backup db);
Run Code Online (Sandbox Code Playgroud)

这里的语法有什么问题?

它告诉"pg_dump附近的语法错误"

a_h*_*ame 25

您仍然没有向我们展示大局,但"语法错误"似乎表明您从SQL客户端工具(psql,pgAdmin,...)中运行它

pg_dump并且psql命令行程序,而不是SQL语句.

您需要从命令提示符(也称为shell)运行它们

此外,(旧的db)参数是完全错误的.数据库不会放入pg_dump的括号中,例如:

pg_dump -U user1 dbname_old_db | psql -U user2 dbname_new_db
Run Code Online (Sandbox Code Playgroud)

再次:您必须从命令提示符运行它,而不是从SQL工具中运行它

  • 我遇到过同样的问题。我在 psql 中,必须 \q 才能返回 shell 然后运行它。 (2认同)

zgp*_*max 6

从错误信息syntax error near pg_dump和您在命令行用分号结束的事实,它看起来像你正在尝试运行pg_dump PSQL.

这不行.您需要在shell(例如bash)提示符下运行命令.

(顺便说一句,提供错误消息的文本(pg_dump附近的语法错误)对于诊断此问题至关重要.原始问题没有包括它,没有人能够提供帮助.一旦你添加了文本,你就有了几分钟内答案.)