Redshift VACUUM无法在SQLWorkbenchJ上的事务块内运行

时间:2015-11-30 08:33:38

标签: vacuum sql-workbench-j

我有一个:

  

VACUUM无法在事务块内运行

Redshift中SQLWorkbenchJ上的

错误,但我之前已经提交了所有事务。

3 个答案:

答案 0 :(得分:12)

您无需更改连接配置文件,您可以使用set autocommit

“即时”更改SQL脚本中的自动提交属性
set autocommit on;
vacuum;
set autocommit off;

您还可以通过“SQL - > Autocommit”菜单切换当前的自动提交状态

答案 1 :(得分:6)

对我来说这很有效。

END TRANSACTION;
VACCUM <TABLENAME>;

答案 2 :(得分:2)

打开和关闭自动提交似乎是一个hacky解决方案,特别是如果你有一个长的脚本标点提交和真空(即很多非常大的临时表)。相反,尝试(在一行)。此外,许多人报告redshift不喜欢语法。取而代之的是,

COMMIT;VACUUM;COMMIT;

问题是,vacuum不仅希望成为事务块中的第一个命令,而且希望在之后显式提交块。