1

我是 redshift 和 sql workbench/j 的新手,而且我来自使用 bigquery,所以也许我不知道代码样式的细微变化。我有两个非常简单的查询,我试图在连接到我的 redshift db 的 sql workbench/j 中执行,但我不断收到错误消息

亚马逊无效操作:当前事务被中止,命令被忽略,直到事务块结束;[SQL 状态=25P02,DB 错误代码=500310] 1 条语句失败。

围绕 workbench/j 的文档非常有限

查询 2

SELECT
report_date,
campaign,
ad_group,
ad_type,
data_source,
channel,
device,
impressions,
clicks,
conversions,
cost,
conversion_type
FROM
( 
SELECT
report_date,
campaign,
ad_group,
ad_type,
'Bing Ads' as data_source,
'Paid Search' as Channel,
device,
impressions,
clicks,
cost,
NULL AS conversions,
NULL as conversion_type,
FROM t1

将创建空转换类型和转换以及 data_source 和通道变量的新列都是非常简单的查询,我可以在 BQ 中执行但不能在 workbench/j 中执行

关于为什么这可能不起作用的任何想法?以及对细微差别的一般洞察力,因此我将来会意识到。

4

1 回答 1

1

这与 SQL Workbench/J 无关。这是 Postgres 和 Redshift 的默认事务行为,因为它是 Postgres 的一个分支。

如果事务中的任何语句失败,则事务失败。您可能在此之前执行了不同的查询,但失败了,现在您必须在继续之前回滚您的事务(这是错误消息告诉您的内容)。

在 SQL Workbench/J(或任何其他 SQL 客户端)中处理该问题的最简单方法是在连接配置文件中启用自动提交,以便每个查询自动结束它启动的事务。

于 2019-07-18T15:58:21.127 回答