来自文档
更改现有行中列的值与插入新行非常相似: M := spanner.Update(“用户”,[]字符串{“user_id”,“配置文件”},[]接口{}{UserID,profile}) _,err := client.Apply(ctx,[]*spanner.Mutation{m})
扳手如何理解要更新的行?我看到它好像缺少了WHERE条款。它是否自动使用某些字段作为键(如隐式user_id = "...")?
发布于 2022-11-23 16:40:43
云扳手将自动使用突变正在更新的表的主键。这意味着您必须在Update突变中包含主键的所有列。因此,一个Update突变也只更新一行(如果该行不存在,它将返回一个NOT_FOUND错误)。
这也意味着无法更新行的主键值。相反,如果要“更改”主键值,则必须删除该行并插入新行。
有关突变如何工作的更多信息,请参见https://cloud.google.com/spanner/docs/reference/rpc/google.spanner.v1#mutation。
https://stackoverflow.com/questions/74547849
复制相似问题