PHP-GDS Upsert覆盖未指定的值

时间:2017-05-23 09:09:06

标签: php google-cloud-datastore

我只有一个按键查询 - 就像这样 -

$ Sub = $ obj_store-> fetchOne(" SELECT WHERE HAS ANCESTOR KEY(订阅,$ key)");

我在其中一个字段

上设置了一个值

$ Sub-> active = TRUE;

然后做一个upsert

$ obj_store-> UPSERT($子);

更新了一个值,但删除了其他现有列。如果我选择*,则不会删除值。

我需要避免完整记录读取以进行结算。

如何更新记录中的字段并避免删除所有其他字段?我使用php-gds包装器进行云数据存储。

欲望将是如下的查询 update subscribe set active = TRUE where keyid = 1234

1 个答案:

答案 0 :(得分:1)

写入Cloud Datastore假设您正在发送“整个”实体。您无法像在关系数据库中那样更新实体的特定属性。就像您发现的那样,更新实体的正确方法是首先从数据存储区读取整个实体,然后更改一个或多个属性,然后保存。