如何使用工具PGADMIN在Postgres中运行多个sql语句?

时间:2019-01-29 14:51:02

标签: pgadmin postgresql-9.5

我有170个Alter Drop Constraint语句,120个Truncate表,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;

但是它不起作用,

有人可以建议我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

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

如果您需要在一个脚本中运行它们,那么只需按照以下方法在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之类的客户端运行此方法之间,我看不出有什么区别。