我有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;
但是它不起作用,
有人可以建议我该怎么做吗?
答案 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之类的客户端运行此方法之间,我看不出有什么区别。