【发布时间】:2020-01-25 07:40:45
【问题描述】:
我是 Google Cloud Spanner 的新手,Key.of(2, 2) 在 Google Cloud Spanner 中有什么作用?
导入 com.google.cloud.spanner.Key;
【问题讨论】:
标签: spring-boot google-cloud-spanner
我是 Google Cloud Spanner 的新手,Key.of(2, 2) 在 Google Cloud Spanner 中有什么作用?
导入 com.google.cloud.spanner.Key;
【问题讨论】:
标签: spring-boot google-cloud-spanner
它创建一个键值来引用具有值 (2, 2) 的主键(或其他索引)。假设您有下表:
CREATE TABLE FOO
(KEY1 INT64, KEY2 INT64, BAR STRING(100))
PRIMARY KEY (KEY1, KEY2)
然后 Key.of(2,2) 创建一个键,该键将引用表中 KEY1=2 AND KEY2=2 所在的行。
您可以在读取操作和变异操作中使用此键来指定要读取或更新/删除的行。
您还可以使用一个键来使用二级索引而不是主键来读取数据。假设您的表还具有以下二级索引:
CREATE INDEX IDX_FOO_BAR ON FOO (BAR)
然后您可以通过使用 Key 过滤索引值来从表中读取数据:
DatabaseClient client = spanner.getDatabaseClient(...)
ResultSet resultSet =
client
.singleUse()
.readUsingIndex(
"FOO",
"IDX_FOO_BAR",
KeySet.range(KeyRange.closedOpen(Key.of("A"), Key.of("C"))),
Arrays.asList("KEY1", "KEY2", "BAR");
上面将读取表 FOO 中BAR>='A' AND BAR<'C' 的所有行。
【讨论】: