假设我在一个表中有一百万行。我想将列中的标志从真翻转为假。我如何用一个语句在扳手中做到这一点?
也就是我要实现下面的DML语句。
更新 mytable set myflag=true where 1=1;
假设我在一个表中有一百万行。我想将列中的标志从真翻转为假。我如何用一个语句在扳手中做到这一点?
也就是我要实现下面的DML语句。
更新 mytable set myflag=true where 1=1;
Cloud Spanner 目前不支持 DML,但我们正在开发允许您进行批量突变的数据流连接器 (Apache Beam)。
您可以将此开源 JDBC 驱动程序与标准 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 页面)。这会将一个大更新分成几个较小的更新,并在自己的事务中执行每个更新。您也可以通过将更新语句分成几个不同的部分来自己进行批处理。