Google cloud platform 扳手-从表中删除一行或所有行
我想从扳手表中删除一行或所有行。表的主键是int64。我不想放下桌子重新创建它。我使用谷歌提供的Java教程作为指导(我不是一名Java程序员,自从产品首次问世以来,我一直是一名MS SQL Server开发人员)。这是我的代码。不会删除任何行,也不会引发错误Google cloud platform 扳手-从表中删除一行或所有行,google-cloud-platform,google-cloud-spanner,Google Cloud Platform,Google Cloud Spanner,我想从扳手表中删除一行或所有行。表的主键是int64。我不想放下桌子重新创建它。我使用谷歌提供的Java教程作为指导(我不是一名Java程序员,自从产品首次问世以来,我一直是一名MS SQL Server开发人员)。这是我的代码。不会删除任何行,也不会引发错误 static void perfmonTestDelete(DatabaseClient dbClient) { LocalDateTime datetimeStart = LocalDateTime.now(); Loc
static void perfmonTestDelete(DatabaseClient dbClient) {
LocalDateTime datetimeStart = LocalDateTime.now();
LocalDateTime datetimeEnd;
Mutation.delete("productPerfmon",KeySet.all());
datetimeEnd = LocalDateTime.now();
long diffInSeconds = java.time.Duration.between(datetimeStart, datetimeEnd).getSeconds();
System.out.println("DurationInSeconds:" + diffInSeconds);
}
下面是填充表中我要从中删除的10行的代码:
static void perfmonTest(DatabaseClient dbClient) {
LocalDateTime datetimeStart = LocalDateTime.now();
LocalDateTime datetimeEnd;
List<Mutation> mutations = new ArrayList<>();
for (int i = 0; i < 10; i++) {
mutations.add(Mutation.newInsertBuilder("productPerfmon")
.set("product_id")
.to(i)
.set("product_code")
.to("test")
.set("product_code_v")
.to("test_v")
.build());
}
dbClient.write(mutations);
datetimeEnd = LocalDateTime.now();
long diffInSeconds = java.time.Duration.between(datetimeStart, datetimeEnd).getSeconds();
System.out.println("DurationInSeconds:" + diffInSeconds);
}
static void perfmonTest(DatabaseClient dbClient){
LocalDateTime datetimeStart=LocalDateTime.now();
LocalDateTime日期时间结束;
列表变量=新的ArrayList();
对于(int i=0;i<10;i++){
添加(Mutation.newInsertBuilder(“productPerfmon”)
.set(“产品标识”)
.至(i)
.set(“产品代码”)
.至(“测试”)
.set(“产品代码”)
.至(“测试v”)
.build());
}
dbClient.write(突变);
datetimeEnd=LocalDateTime.now();
long diffInSeconds=java.time.Duration.between(datetimeStart,datetimeEnd.getSeconds();
System.out.println(“持续时间秒:+不同秒”);
}
非常感谢您的帮助。要删除一行或多行,您需要使用or选择器:
SpannerOptions options = SpannerOptions.newBuilder().build();
Spanner spanner = options.getService();
DatabaseClient dbClient = spanner.getDatabaseClient(DatabaseId.of(
options.getProjectId(), "InstanceId", "databaseName"));
List<Mutation> mutations = new ArrayList<>();
// Single row by key
mutations.add(Mutation.delete("tableName",
KeySet.singleKey(Key.newBuilder().append("Key").build())));
// Multiple rows by range
mutations.add(Mutation.delete("tableName",
KeySet.range(
KeyRange.newBuilder()
.setStart(Key.newBuilder().append("StartKeyIncl").build())
.setEnd(Key.newBuilder().append("EndKeyNotIncl").build())
.build())));
dbClient.write(mutations);
span操作选项=span操作.newBuilder().build();
扳手扳手=options.getService();
DatabaseClient dbClient=span.getDatabaseClient(DatabaseId.of(
options.getProjectId(),“InstanceId”,“databaseName”);
列表变量=新的ArrayList();
//按键单列
突变。添加(突变。删除(“表名”,
Key.singleKey(Key.newBuilder().append(“Key”).build());
//按范围多行
突变。添加(突变。删除(“表名”,
键集范围(
KeyRange.newBuilder()
.setStart(Key.newBuilder().append(“StartKeyIncl”).build())
.setEnd(Key.newBuilder().append(“EndKeyNotIncl”).build())
.build());
dbClient.write(突变);
要删除表中的所有行,可以执行以下操作:
List<Mutation> mutations = new ArrayList<>();
mutations.add(Mutation.delete("tableName", KeySet.all()));
dbClient.write(mutations);
List mutations=new ArrayList();
添加(Mutation.delete(“tableName”,KeySet.all());
dbClient.write(突变);
要删除一行或多行,需要使用or选择器:
SpannerOptions options = SpannerOptions.newBuilder().build();
Spanner spanner = options.getService();
DatabaseClient dbClient = spanner.getDatabaseClient(DatabaseId.of(
options.getProjectId(), "InstanceId", "databaseName"));
List<Mutation> mutations = new ArrayList<>();
// Single row by key
mutations.add(Mutation.delete("tableName",
KeySet.singleKey(Key.newBuilder().append("Key").build())));
// Multiple rows by range
mutations.add(Mutation.delete("tableName",
KeySet.range(
KeyRange.newBuilder()
.setStart(Key.newBuilder().append("StartKeyIncl").build())
.setEnd(Key.newBuilder().append("EndKeyNotIncl").build())
.build())));
dbClient.write(mutations);
span操作选项=span操作.newBuilder().build();
扳手扳手=options.getService();
DatabaseClient dbClient=span.getDatabaseClient(DatabaseId.of(
options.getProjectId(),“InstanceId”,“databaseName”);
列表变量=新的ArrayList();
//按键单列
突变。添加(突变。删除(“表名”,
Key.singleKey(Key.newBuilder().append(“Key”).build());
//按范围多行
突变。添加(突变。删除(“表名”,
键集范围(
KeyRange.newBuilder()
.setStart(Key.newBuilder().append(“StartKeyIncl”).build())
.setEnd(Key.newBuilder().append(“EndKeyNotIncl”).build())
.build());
dbClient.write(突变);
要删除表中的所有行,可以执行以下操作:
List<Mutation> mutations = new ArrayList<>();
mutations.add(Mutation.delete("tableName", KeySet.all()));
dbClient.write(mutations);
List mutations=new ArrayList();
添加(Mutation.delete(“tableName”,KeySet.all());
dbClient.write(突变);
文档说明Google Panner符合ANSI SQL-2011。但我并没有在Cloud扳手中找到任何删除、更新和插入的示例
我对SQL-2011的理解是,它肯定包括对删除、插入和更新的支持
在这种情况下,添加或删除行将成为单个SQL语句,Java客户机将使用JDBC进行连接 文档说明Google Panner符合ANSI SQL-2011。但我并没有在Cloud扳手中找到任何删除、更新和插入的示例 我对SQL-2011的理解是,它肯定包括对删除、插入和更新的支持
在这种情况下,添加或删除行将成为单个SQL语句,Java客户机将使用JDBC进行连接 Google Cloud Paner的文档说明JDBC驱动程序(当前)不支持DML和DDL:。如果您希望通过JDBC支持DML和DDL,您可以使用此驱动程序:(注意:我是驱动程序的作者,但不以任何方式隶属于Google)Google Cloud Panner的文档声明JDBC驱动程序(当前)不支持DML和DDL:。如果您希望通过JDBC支持DML和DDL,您可以使用这个驱动程序:(注意:我是驱动程序的作者,但不以任何方式隶属于Google)