我在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
答案 0 :(得分:0)
查询的问题是插入列和值列表不匹配。列名列表中有5列,而值列表中有4列。似乎您错过了价值列表中的总价值。
在这种情况下,BQ应该给出明确的消息,而不是内部错误。我们将为此进行修复。