BigQuery中的MERGE语句失败:“发生内部错误,无法处理请求”

时间:2018-05-09 13:45:12

标签: google-bigquery

我在BigQuery中的`MERGE``语句下执行并收到错误:

  

“发生了内部错误,无法处理请求”

我做错了什么?

SQL1:

MERGE INTO
  testdataset.bq_pars_table TGT
USING
  (
  SELECT
    ID,
    NAME,
    TOTAL,
    AVG_amt,
        CREATED_AT
  FROM
    testdataset.bq_pars_table_copy_merge ) SOURCE
ON
  (TGT.ID = SOURCE.ID )
  WHEN MATCHED  THEN  UPDATE   SET  TGT.avg_amt = SOURCE.avg_amt
  WHEN NOT MATCHED
  THEN
INSERT
  (ID,
    NAME,
    TOTAL,
    AVG_amt,
       CREATED_AT)
VALUES
  ( SOURCE.ID, SOURCE.NAME, SOURCE.AVG, SOURCE.CREATED_AT)

SQL2:

下面一个能够执行和更新所需的数据。

MERGE INTO
  testdataset.bq_pars_table TGT
USING
  (
  SELECT
    ID,
    NAME,
    TOTAL,
    AVG_amt,
        CREATED_AT
  FROM
    testdataset.bq_pars_table_copy_merge ) SOURCE
ON
  (TGT.ID = SOURCE.ID )
  WHEN MATCHED  THEN  UPDATE   SET  TGT.avg_amt = SOURCE.avg_amt

1 个答案:

答案 0 :(得分:0)

查询的问题是插入列和值列表不匹配。列名列表中有5列,而值列表中有4列。似乎您错过了价值列表中的总价值。

在这种情况下,BQ应该给出明确的消息,而不是内部错误。我们将为此进行修复。