2017-02-16 103 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

相關問題