google-bigquery - 如何将多条记录插入 BigQuery 中特定行的重复记录字段?
问题描述
我有一个非常简单的 BigQuery 表架构:
Field name Type Mode
thing STRING NULLABLE
arraything RECORD REPEATED
quotekey STRING NULLABLE
policyvalue INTEGER NULLABLE
testbool BOOLEAN NULLABLE
testtimestamp TIMESTAMP NULLABLE
我插入了一行,只有一个thing
:
INSERT INTO `...tablename`(thing) VALUES('Moose');
我需要能够将多个对象插入到我的arraything
中,并且我可以收集到的语法是:
UPDATE `...tablename` SET arraything = ARRAY_CONCAT(arraything, [("a string", 6, true, NULL)]) WHERE thing = 'Moose';
但是,我收到错误:
Query error: No matching signature for function ARRAY_CONCAT for argument types: ARRAY<STRUCT<quotekey STRING, policyvalue INT64, testbool BOOL, ...>>, ARRAY<STRUCT<STRING, INT64, BOOL, ...>>. Supported signature: ARRAY_CONCAT(ARRAY, [ARRAY, ...]) at [36:78]
不能ARRAY_CONCAT
与重复类型一起使用吗?如何在where = 'Moose'arraything
的行中实现插入(现在一次多个)s ?thing
我需要做一些铸造吗?
解决方案
考虑以下固定语法
UPDATE `...tablename`
SET arraything = ARRAY_CONCAT(
arraything, [
struct<quotekey STRING, policyvalue INTEGER, testbool BOOLEAN, testtimestamp TIMESTAMP>
("a string", 6, true, NULL)
]
)
WHERE thing = 'Moose';
推荐阅读
- node.js - Heroku Node js文件更改未保存
- python - 获取项目的id而不是值,django表单
- java - 如何在 Java (Intellij) 中将可点击的变量输出到控制台并将您发送到它们所在的代码行
- python - 如何使用训练有素的连体网络来预测具有 100 多个类别的大型测试集的标签?
- javascript - 获取时不获取数据
- windows - Windows 10 上的 curl:“标题中的无效字符”
- javascript - 找不到类型为 'object' 的不同支持对象 '[object Object]',但它已经是一个数组
- typescript - 您如何在 TypeScript 可迭代对象中定义多个收益类型?
- android - 如何在禁用的浮动提示上修复 TextInputLayout 笔划
- javascript - JavaScript 验证方法未按预期工作