假设表中有一百万行。我想将列中的标志从true翻转为false。如何使用单个语句在扳手中执行此操作?
也就是说,我想实现以下DML语句。
更新mytable set myflag = true,其中1 = 1;
答案 0 :(得分:2)
Cloud Spanner目前不支持DML,但我们正在开发一个允许您进行批量突变的Dataflow连接器(Apache Beam)。
答案 1 :(得分:1)
您可以将this open source JDBC driver与标准JDBC工具结合使用,例如SQuirreL或SQL Workbench。在这里查看有关如何使用这些工具的驱动程序的简短教程:http://www.googlecloudspanner.com/2017/10/using-standard-database-tools-with.html
JDBC驱动程序支持DML和DDL语句,因此该语句应该是开箱即用的:
Update mytable set myflag=true
支持在大量行上运行的DML语句,但Cloud Spanner的基础事务配额继续适用(在一个事务中最多20,000个突变)。您可以通过设置AllowExtendedMode = true连接属性来绕过此(请参阅驱动程序的Wiki页面)。这会将大量更新分成几个较小的更新,并在其自己的事务中执行其中的每个更新。您也可以通过将更新语句分成几个不同的部分来自行完成批处理。