ここ(↓)に書いた通り、簡易クリッカーシステムをGASで作っているのですが、テーブル情報を更新する必要があり、ちょっとはまりました。
Google App ScriptとFusion Tableで簡易クリッカーアプリ - memorandums
ヒントは以下でした。ありがたやありがたや。
一般的なSQLではWHERE句なしでUPDATEを実行すると全レコードが更新されるわけですが、上記の記事によると、Fusion Tableでは最初にヒットした1レコードしか更新されないんだそうです。
私の用途ではフラグ的なレコードで1レコードしか存在しないので、そもそもWHERE句なんて必要ないだろと思って
UPDATE テーブル名 SET A='YES'
などと実行したのですが、ぜんぜん変更される気配がありません。さらにスクリプトを実行するとエラーが。。。
onfailureのメッセージを読むと以下のようなものでした。
ScriptError: Invalid query: Parse error near ';' (line 1, position 65). Expecting WHERE instead.
ここからは想像なのですが、上記のQiitaの記事と上記のエラーメッセージをなんとなく考えるとWHERE句が必要なんだ。。。ということが見えてきます。
ちなみにROWIDはレコード一覧には表示されないので、1レコードだけ選択して表示する必要があります。Qiitaの記事ではSELECTした結果を利用しているようです。僕の場合は1レコードしかないので手動でOKです。調べてみると(下図)ちなみにROWIDは1であることがわかりました。
で、SQLを書き直すと動作しましたよ、ということでした。
UPDATE テーブル名 SET A='YES' WHERE ROWID=1
まぁ、いろいろありますね。