Open1

spanner array型メモ

かなぶんかなぶん

ARRAY型で、テストのためにNULLじゃないカラムをNULLに戻したかった

-- うまくいかなかったクエリ
update table_A set array_column = null where array_column!=null; -- エラー
update table_A set array_column = null where array_column[0]=1; -- エラー

-- うまくいったクエリ
-- 特定の要素(0番目)が1だったとき
update table_A set array_column = null where array_column[OFFSET(0)]=1; -- 成功
-- 配列の長さが0より大きければNULLにする
update table_A set array_column = null where ARRAY_LENGTH(array_column) > 0
-- 空の配列に置き換える
update table_A set array_column = ARRAY<INT64>[] where ARRAY_LENGTH(array_column) > 0