如何在Google App Engine中删除应用使用的datastore中的行?
所有的视频和教程都只教你怎么往数据存储里添加东西,以及怎么通过GqlQuery来获取数据。那么,怎么从数据存储里删除东西呢?像'SELETE FROM mytable WHERE condition'这样的查询能用吗?
2 个回答
1
GQL语言是只读的,主要用来从App Engine的数据库中获取数据或键。
如果你想要删除数据,就需要使用delete这个方法,它是由Datastore API提供的。
下面是一个例子:
q = db.GqlQuery("SELECT * FROM Foo")
results = q.fetch(10)
for result in results:
result.delete()
6
systempuntout和Forest的回答都是对的。不过,你可能想知道,其实你可以把一些数据存储的操作放在一起,这样可以提高效率(可以看看这个博客文章,是App Engine团队写的)。
你可以这样修改systempuntout的回答:
q = db.GqlQuery("SELECT * FROM Foo")
results = q.fetch(10)
db.delete(results)
这样做的话,不需要为每个被删除的项目单独来回操作,而是一次性删除所有。