r = db.GqlQuery("select * from Stock limit 100")
for rr in r:
rr.delete()
後方一致 ( like *key_word ) の場合、offset で移動させた。r = db.GqlQuery("select * from Model limit 100 offset " + str(offset) )
start = int(offset) + 100
self.response.out.write('<a href="/xxx?offset=%s">del</a>' % str(start) )
for rr in r:
if rr.trackback_url.find('</td></tr>') <>-1:
・・・
プログラムで LOOP させて offset を自動処理しては DeadlineExceededError はさけられず、
意味がない。
このあたり how should I clean up inside the datastore?
http://groups.google.com/group/google-appengine/browse_thread/thread/da854121e242755a?hl=en
でも話題になっているので、そのうち trauncate table のようなコマンドは用意されるか。
制限事項が多く、少々うんざり気味。
でも、RDBMS でも Undo 領域を必要としない truncate table ができるまでは Oracle などよく delete では「Rollbackセグメントが足りません」といってデータを思うように削除させてくれず、仕方がないので条件指定して少しづつ削除したこともあった。
Rollback などできなくていいから、まとめて削除させて欲しいと思いつつ。