2017-04-03 59 views
2

假设我在表中有一百万行。我想将一列中的标志从真到假翻转过来。我怎么用扳手做扳手?批量更新一百万行

也就是说,我想实现下面的DML语句。

更新mytable set myflag = true其中1 = 1;

回答

1

您可以使用this open source JDBC driver结合标准JDBC工具,例如SQuirreLSQL 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页面)。这将大量更新分成几个较小的更新,并在其自己的事务中执行每个更新。你也可以通过将你的更新语句分成几个不同的部分来做到这一点。

2

Cloud Spanner目前不支持DML,但我们正在研究一种Dataflow连接器(Apache Beam),它可以让您进行批量突变。