我有一个继承的Google DataStore 该数据存储区大约有900万条记录。 我想删除所有旧记录(例如所有早于1个月的记录)。 一般来说,当我使用Google Cloud Console Datastore->按种类查询时,我能够放入类似SQL的语句:
select * from table limit 5
但是,当我尝试使用“ gql查询”来执行类似删除行的操作时:
delete from table where date<"2019-01-01"
它不起作用-我收到错误:“ GQL查询错误:在第1行第1列遇到“删除”。期望:“选择” ... “
是否有一种简单的方法可以对所有旧记录执行删除操作?
答案 0 :(得分:0)
您不能使用GQL删除。如果要删除,则应使用客户端libraries之一。
答案 1 :(得分:0)
一种简单的方法是编写脚本并在需要时运行它。
代码(Python 2.7):
from google.appengine.ext import ndb
from datetime import date
kind = ModelX #kind whose entries you want to delete
check = date(2019,1,1) # Date to be used to check records
# GQL Query to fetch keys of all older records
all_keys = kind.gql("WHERE date <= :1",check).fetch(keys_only = True)
# Deleting all entries at once
ndb.delete_multi(all_keys)
希望这能回答您的问题!
答案 2 :(得分:0)
您不能使用 GQL 删除实体。
您可以使用 UI 删除按钮或使用 datastore.delete() 方法手动删除实体