我是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
中执行为什么这可能行不通?以及对细微差别的全面了解,以便我将来知道。
答案 0 :(得分:0)
与SQL Workbench / J无关。这是Postgres以及Redshift的默认事务行为,因为它是Postgres的分支。
如果任何语句在事务中失败,则事务失败。在此之前,您可能执行了不同的查询,但失败了,现在您必须回滚事务,然后继续操作(错误消息告诉您)。
在SQL Workbench / J(或任何其他SQL客户端)中处理此问题的最简单方法是在连接配置文件中启用自动提交,以便每个查询自动结束它启动的事务。