PDATE/MERGE must match at most one source row for each target row.

2020/10/08

BigQuery

t f B! P L

 BigQueryで、Updateを実行時、タイトルのエラーに遭遇。

公式ドキュメントに、

更新する対象のテーブルの行が FROM 句の複数の行と結合する場合、クエリは UPDATE/MERGE must match at most one source row for each target row. というランタイム エラーを生成します。

と、あるのだが、イマイチこの解説の意味がわからなかった。

公式の例は下記で複合テーブルに対するUpdateが挙げられている。

UPDATE dataset.Inventory i
SET quantity
= i.quantity + n.quantity,
    supply_constrained
= false
FROM dataset
.NewArrivals n
WHERE i
.product = n.product


要は、結合する際、Inventory:NewArrivals = 1:nとなっている場合にこのエラーが出る。

条件を変更して 1:1となるようにすれば、エラーは出ず実行できた。


QooQ