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。
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。