2017-02-16 176 views

回答

1

云扳手不使用read-write transactions支持INSERT/UPDATE/DELETE DML操作,但是你可以达到同样的效果。对数据的所有突变必须通过事务提交方法(在REST或gRPC中),该方法接受Mutation对象。

在你的榜样,你会

  1. 开始读写事务,并执行一个SQL语句,如:SELECT <key> from MyTable where foo="baz"
  2. Then commit然后commit该交易包括一个Mutation对象列表(您从选择中返回的每行一列)与update属性将所有值设置为"bar"
1

Google云端Spanner本身不支持这个功能,但是这个JDBC驱动程序https://github.com/olavloite/spanner-jdbc通过解析提供的SQL并调用Google Cloud Spanner的读/写API来支持它。查看CloudSpannerPreparedStatement中的代码,了解它是如何完成的。该驱动程序依赖于https://github.com/JSQLParser/JSqlParser提供的SQL解析。

从上述JDBC驱动程序的版本0.16和更新版本开始,支持在多行上运行的完整DML语句。您可以将驱动程序与SQuirreL或DBVisualizer之类的工具结合使用,以便将语句发送到Cloud Spanner。

看看这里的一些例子:http://www.googlecloudspanner.com/2018/02/data-manipulation-language-with-google.html

相关问题