2

AlbumTokens我正在尝试在我的 Google Cloud Spanner 测试数据库中的列上创建索引,但在引用当前未记录的索引选项时遇到一个神秘错误:

CREATE INDEX AlbumTokens 
ON Albums (
    AlbumTokens
)

>>> Index AlbumTokens references ARRAY AlbumTokens, but is not declared as DISTINCT_ARRAY_ELEMENT index.

是否有可能做到这一点?如果是这样,怎么做?

我正在使用示例模式并ARRAY<STRING>添加了一个列:

CREATE TABLE Singers (
    SingerId INT64 NOT NULL,
    FirstName STRING(1024),
    LastName STRING(1024),
    SingerInfo BYTES(MAX),
) PRIMARY KEY (SingerId)

CREATE TABLE Albums (
    SingerId INT64 NOT NULL,
    AlbumId INT64 NOT NULL,
    AlbumTitle STRING(MAX),
    AlbumTokens ARRAY<STRING(MAX)>,
) PRIMARY KEY (SingerId, AlbumId),
INTERLEAVE IN PARENT Singers ON DELETE CASCADE
4

1 回答 1

3

您不能使用Array作为键来创建索引:

不允许的类型

这些不能是 ARRAY 类型:

表的键列。

索引的键列。

您可以通过STORING关键字将数组包含在索引中以返回数组而不加入主表,但您无法扫描 i

于 2017-03-22T20:30:47.350 回答