【问题标题】:How to run multiple sql statements in Postgres using the tool PGADMIN?如何使用工具 PGADMIN 在 Postgres 中运行多个 sql 语句?
【发布时间】:2019-01-29 14:51:01
【问题描述】:

我有 170 个 Alter Drop Constraint 语句、120 个 Truncate table、120 个 Insert 表和 170 个 Alter Add Constraint。所有这些都应该作为批处理脚本在一个脚本中运行,我正在使用 PGADMIN IV 工具。

尝试像 Oracle 一样在 Begin 和 End 之间执行它们,

BEGIN 
  ALTER Statement1..,,  ;
  ALTER Statement2..,,  ;
  TRUNCATE Statement3..,,  ;
  TRUNCATE Statement4..,,  ;
  INSERT Statement5..,,    ;
  INSERT Statement6..,,    ;
  COMMIT;
  ALTER Statement7..,,     ;
  ALTER Statement8..,,     ;
  ---
  -----
  -------
  ---------
  COMMIT;
END;

但它不起作用,

有人可以就我如何做到这一点提出建议吗?

【问题讨论】:

  • 每条语句后都需要;,而不是,,最后需要COMMIT;ROLLBACK;end;仅在PL/pgSQL中有效,而不是在 SQL 中(在 Oracle 中也是如此
  • 是的,我这样做了,但不幸的是忘记在这里发布,我现在正在编辑它!据我了解,我们不能在 Postgres 的 BEGIN 和 END 子句之间运行 SQL 语句,而是自己编写所有 SQL 并一次选择所有内容并相应地运行。这里我说的是在 PGADMIN IV 工具而不是 PSQL 中运行。但是现在我只是在寻找一种解决方法,如果可能的话,是否有任何其他替代方法可以在 PG ADMIN TOOL 中使用 PL/PGSQL 将所有 SQL 作为一个批次运行。请纠正我,如果我在这里错了,?
  • 如果您正在寻找相当于 Oracle 的匿名 PL/SQL 块,那么您可能正在寻找 do 命令
  • 好的,但是如果我需要使用 PGADMIN 工具在 Postgres 中批量运行三个 select 语句,您能告诉我如何完成吗?
  • 对不起,我不使用 pgAdmin

标签: pgadmin postgresql-9.5


【解决方案1】:

您的问题不是很清楚您实际打算做什么。您是想在一个脚本或一个事务中运行所有语句吗?

如果您需要在一个脚本中运行它们,那么只需在 PGADMIN 中按以下方式运行它们即可。

  ALTER Statement1 ;
  ALTER Statement2 ;
  TRUNCATE Statement3 ;
  TRUNCATE Statement4 ;
  INSERT Statement5 ;
  INSERT Statement6 ;
  ALTER Statement7 ;
  ALTER Statement8 ;

等等。

另一方面,如果您想在事务中运行它们,只需将语句括在 BEGIN 和 COMMIT 中,如下所示。

  BEGIN ;
  ALTER Statement1 ;
  ALTER Statement2 ;
  TRUNCATE Statement3 ;
  TRUNCATE Statement4 ;
  INSERT Statement5 ;
  INSERT Statement6 ;
  ALTER Statement7 ;
  ALTER Statement8 ;
  COMMIT ;

我看不出在 PGADMIN 中运行它的方式与使用 psql 之类的客户端运行它的方式有什么区别。

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多