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

Tin*_*Jia 10 vacuum sql-workbench-j

我有一个:

VACUUM无法在事务块内运行

Redshift中SQLWorkbenchJ上的错误,但我之前已经提交了所有事务.

a_h*_*ame 12

您无需更改连接配置文件,您可以使用set autocommit "即时"更改SQL脚本中的autocommit属性

set autocommit on;
vacuum;
set autocommit off;
Run Code Online (Sandbox Code Playgroud)

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

  • 您好,当我在 SQLWorkBenchJ 中运行这 3 个 sql 命令时,收到一条错误消息:错误:“on”位置或附近的语法错误:17 (2认同)

use*_*227 9

对我来说这很有效.

END TRANSACTION;
VACCUM <TABLENAME>;
Run Code Online (Sandbox Code Playgroud)


Chr*_*ell 6

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

COMMIT;VACUUM;COMMIT;
Run Code Online (Sandbox Code Playgroud)

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