如何在我的 redshift / SQL Workbench 连接中找到 AUTOCOMMIT 的当前值?

Posted

技术标签:

【中文标题】如何在我的 redshift / SQL Workbench 连接中找到 AUTOCOMMIT 的当前值?【英文标题】:How can I find the current value for AUTOCOMMIT in my redshift / SQL Workbench connection? 【发布时间】:2018-10-15 14:23:57 【问题描述】:

我想通过 SQL Workbench / JDBC 连接“调查”一下 Redshift AutoCommit 设置的行为。

我可以在连接页面选择设置,或者通过“SET AUTOCOMMIT ON/OFF”强制设置

但是我怎样才能在我的连接中找到它的当前值呢?

SET 命令的文档并没有给出太多...

而SHOW ALL没有提到这个参数...

【问题讨论】:

这有用吗? Connection.setAutoCommit() 我想这是javascript?我的意思是通过一条 SQL 语句。 @botchniaque 回答(显示自动提交)谢谢 【参考方案1】:

我正在使用 psql 客户端连接到 Redshift。当我尝试将 SET 自动提交到 OFF 时,我收到一条错误消息,提示 ERROR: SET AUTOCOMMIT TO OFF is no longer supported,这听起来像你无法在 Redshift 中执行任何操作交易,虽然我没有找到任何关于它的文档。

psql \
--host=localhost \
--username=xxx \
--port=6506 \
--dbname=datalake
psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04), server 8.0.2)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

datalake=# SHOW AUTOCOMMIT;
 autocommit 
------------
 on
(1 row)

datalake=# SET AUTOCOMMIT=false;
ERROR:  SET AUTOCOMMIT TO OFF is no longer supported

【讨论】:

谢谢。我以为我已经尝试过了,但我显然没有! :-( @Eric Mamet,如果您认为我的回答有帮助,您可以考虑点赞:) 我确实做到了,但没有考虑到(还没有?)因为我是堆栈溢出的新手......【参考方案2】:

在 SQL Workbench/J 中没有“SQL”命令可以做到这一点

您目前可以看到它的唯一方法是查看菜单项。如果选择了 Autocommit 项,则它已打开。

您也可以查看CommitRollback 菜单项。如果它们被禁用,那么自动提交也会被打开。

【讨论】:

以上是关于如何在我的 redshift / SQL Workbench 连接中找到 AUTOCOMMIT 的当前值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AWS Redshift 执行 Bash 脚本

如何在 Redshift 中做分层随机样本?

如何将 redshift 数据库连接到在 ec2 实例上运行的 bash 脚本

2 个时间戳之间的 SQL Redshift 天数差异

在 Redshift SQL 中查找指定日期之前的 Max(Date)

Rails 与 Redshift - 我如何创建关系?