问题描述
Google Cloud Spanner 是否支持 Oracle 之类的 Merge 语句?
例如我有如下的 sql'。它会起作用吗?我在运行代码段时收到无效参数。
合并 P1 c using (select sumery.RunId from PS sumery where sumery.RunId=1010192) s 在 (c.LastRunId=s.RunId) 当匹配时 udpate c.ProcesstypeCd ='更新' 当不匹配时 插入 P1 (进程名称、ActiveF、InProgressF) 值('12','Y','N');
解决方法
不,Cloud Spanner 仅支持 INSERT
、UPDATE
和 DELETE
DML statements。但是,它确实支持 InsertOrUpdate
mutations,它与 MERGE
语句具有相同的语义。
您的问题不包括您连接到 Cloud Spanner 的方式和/或使用哪种编程语言的任何信息,但所有客户端库和 Cloud Spanner 的 JDBC 驱动程序都支持编写突变。可以在此处找到使用突变写入的示例:https://cloud.google.com/spanner/docs/samples/spanner-insert-data