支持更新,插入或删除



SPANNER API是否支持DML语句?例如,支持以下支持:

UPDATE SET foo="bar" WHERE foo="baz"

更新为PR 2018年10月中旬:

Cloud Spanner现在使用直接DML支持INSERTUPDATEDELETE支持:

有关此更改的博客文章:https://cloud.google.com/blog/products/databases/develovel-and-and-deploy-apps-more-easily-with-cloud-cloud-spanner-and-spanner-and-cloud-bigtable updates

文档:https://cloud.google.com/spanner/docs/dml-tasks

云扳手不支持插入/update/delete dml操作,但是您可以使用read-write交易实现相同的效果。数据的所有突变都必须遍历接受突变对象的事务提交方法(在REST或GRPC中)。

在您的示例中,您将

  1. 启动读取交易并执行SQL语句,例如:SELECT <key> from MyTable where foo="baz"
  2. 然后提交交易,并包含Mutation对象的列表(您从SELECT中获得的每一行)都使用update属性将所有值设置为"bar"

Google Cloud Spanner本身不支持这一点,但是此JDBC驱动程序https://github.com/olavloite/spanner-jdbc确实通过解析提供的SQL并调用read/read/编写Google Cloud Spanner的API。看看CloudSpannerpreparedstatement中的代码,以了解其完成方式。驱动程序依赖于https://github.com/jsqlparser/jsqlparser提供的SQL解析。

从0.16版本和上述JDBC驱动程序的较新版本中,支持在多行上运行的完整DML statement。您可以将驱动程序与诸如松鼠或dbvisualizer之类的工具结合使用,以将语句发送给云跨度。

在此处查看一些示例:http://www.googlecloudspanner.com/2018/02/data-manipulation-language-with-google.html

最新更新