SQL Workbench / j中的子查询和联接错误

时间:2019-07-17 17:05:31

标签: amazon-redshift sql-workbench-j

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

  

Amazon无效操作:当前事务中止,命令被忽略,直到事务块结束; [SQL状态= 25P02,数据库错误代码= 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和channel变量的新列 这两个非常简单的查询我都可以在BQ中执行,但不能在workbench / j

中执行

为什么这可能行不通?以及对细微差别的全面了解,以便我将来知道。

1 个答案:

答案 0 :(得分:0)

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

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

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