【问题标题】:How to execute *.sql file using psql如何使用 psql 执行 *.sql 文件
【发布时间】:2022-02-21 11:22:54
【问题描述】:

我创建了一个index.sql 文件,其中包含95 table 的索引创建脚本

例如

DROP INDEX IF EXISTS gtab03_vrctrlid_idx cascade;
CREATE UNIQUE INDEX gtab03_vrctrlid_idx ON gtab03 USING btree (vrctrlid);

我已将所有表的 index creating script 合并到一个名为 index.sql 的文件中 我需要一次运行整个脚本,是否可以使用psql 执行index.sql 文件

【问题讨论】:

  • 您可能需要考虑使用 PL/PgSQL 函数根据对information_schema 的查询和EXECUTE format(...) 上的循环动态地执行此操作,而不是手动写出所有语句。在 dba.se 中搜索示例。

标签: postgresql psql


【解决方案1】:

这是你的意思吗?

\i e:/myFolder/index.sql;

【讨论】:

  • 因为我还不能发表评论(只是你写的)我必须使用答案。顺便说一句,它确实提供了答案。我用过百万次...
  • 没关系。我的评论只是对作者删除的评论的回答;)
【解决方案2】:

以下脚本对我有用,

psql -U postgres -d mydb -a -f "D:\index.sql" -- Absolute path to .sql file

-U, -a, -f

【讨论】:

  • 显然......但是为了社区的利益,如果他们可以按照提供的命令运行命令,则更容易,而无需深入参考以检查此非显而易见标志的作用.我看到你添加了它,你很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2010-10-13
相关资源
最近更新 更多