GCP Spanner 支持结构数组

GCP Spanner support array of structs

Spanner 是否支持结构数组?

以下 DDL 生成错误:

CREATE TABLE table1 (
    col1 BYTES(MAX) NOT NULL,
    col2 STRING(36) NOT NULL,
    col3 TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp=true),
    col4 TIMESTAMP NOT NULL,
     labels array<struct<
      name STRING NOT NULL,
      last_updated timestatmp NOT NULL>>, 
    col5 INT64 NOT NULL,
    col6 STRING(36) NOT NULL,
    col7 STRING(36) NOT NULL,
) PRIMARY KEY (col1);

解析 Spanner DDL 语句时出错:CREATE TABLE table1 (col1 BYTES(MAX) NOT NULL, col2 STRING(36) NOT NULL, col3 TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp=true), col4 TIMESTAMP NOT NULL, labels array>, col5 INT64 NOT NULL, col6 STRING(36) NOT NULL, col7 STRING(36) NOT NULL, ) PRIMARY KEY (col1) : 第 6 行第 19 列的语法错误:遇到 'struct' 解析时:column_type

当然,删除结构列的标签数组效果很好。

正确。在 Spanner ARRAY of STRUCT 中,值可以由 SQL 表达式构造,但不支持作为列类型。参见 https://cloud.google.com/spanner/docs/data-types#declaring_an_array_type