无法使用executeQuery发出数据操作语句-Data Studio / My SQL Connector错误

时间:2018-11-29 00:07:24

标签: mysql google-data-studio

我有一个查询,该查询在MySQL Workbench中运行得很好,但是一旦尝试在Data Studio的mysql连接器中运行它,就会遇到与Data Studio相关的错误。我一直在尝试四处搜寻,并在SO和Data Studio留言板上询问一些想法,但想法不多。我发现大多数回复都与Java有关。

我的查询:

CREATE TEMPORARY TABLE cte_most_recent_record
    SELECT
    leeds_new.leenk_ladder_history.member_id as member_id,
    max(leeds_new.leenk_ladder_history.date_trigger_event) AS date_trigger_event_max
    FROM leeds_new.leenk_ladder_history
    WHERE leeds_new.leenk_ladder_history.ladder_change = 1 and leeds_new.leenk_ladder_history.ladder_advocacy is not NULL
    group by leeds_new.leenk_ladder_history.member_id;

CREATE TEMPORARY TABLE cte_most_recent_record_date_ladder
    select 
    lh.member_id,
    lh.ladder_advocacy,
    lh.date_trigger_event

    from leeds_new.leenk_ladder_history as lh 
        inner join
            cte_most_recent_record as cte_rr on lh.member_id = cte_rr.member_id
            and lh.date_trigger_event = cte_rr.date_trigger_event_max
            limit 100;

CREATE TEMPORARY TABLE cte_ladder_counts_before
    select 
        ladder_advocacy,
        count(ladder_advocacy) as ladder_counts_before

    from cte_most_recent_record_date_ladder
        where date_trigger_event < date('2018-01-01')
        group by ladder_advocacy;

CREATE TEMPORARY TABLE cte_ladder_counts_after
    select 
        ladder_advocacy,
        count(ladder_advocacy) as ladder_counts_after

    from cte_most_recent_record_date_ladder
        where date_trigger_event > date('2018-01-01')
        group by ladder_advocacy;

select
    cte_ladder_counts_before.ladder_advocacy,
    cte_ladder_counts_before.ladder_counts_before,
    ladder_counts_after,
    ladder_counts_before - ladder_counts_after

from cte_ladder_counts_before
    inner join cte_ladder_counts_after on cte_ladder_counts_before.ladder_advocacy = cte_ladder_counts_after.ladder_advocacy; 

drop table cte_most_recent_record;
drop table cte_most_recent_record_date_ladder;
drop table cte_ladder_counts_before;
drop table cte_ladder_counts_after;

错误:

Sorry, we encountered an error and were unable to complete your request.

Failed to execute connection with error: Can not issue data manipulation statements with executeQuery().
Error ID: 24721465

我认为这与在同一查询中有多个表有关-因为我可以仅使用select语句之一来运行查询?但是我不确定是否还有其他我应该注意的数据工作室内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我知道答案来得太晚了,但是以防万一将来有人需要它。我今天遇到了同样的问题。答案很容易解决,很令人沮丧。

您正在使用CREATE TEMPORARY TABLE句子(就像我一样)。然后我意识到DataStudio无法处理该句子。 (显然,它也不能执行多重查询。)

所以我的解决方法是实际创建数据库中的表,而不是临时创建表。 (有效但一点也不干净)...并删除查询中的CREATE TEMPORARY TABLE句子。就像是一种魅力,但阴暗的一面,现在我的数据库中只有一个无用的表用于处理该查询。

希望这会有所帮助。