Google Spreadsheet から DBにデータ保存して参照する

移転しました。

"); // リダイレクト   setTimeout("redirect()", 2000); // 2 sec   function redirect(){     location.href = url;   }    // canonical の書き換え   var link = document.getElementsByTagName("link")[0];   link.href = url; -->

Google Spreadsheet は シートに値を埋めていけば簡易DBになるんですが、多少データ量が増えてくると200万セル制限にひっかかったりして面倒なことになります。

hacknote.jp

このためDBにデータを保存しようとして、いろいろ探してみました。

Google Cloud SQL

f:id:shohu33:20160509174524j:plain

Google Cloud SQL を使えばGoogle Spreadsheetから簡単にMySQLにアクセスできるんですが、お金がかかるということで却下

JDBC  |  Apps Script  |  Google Developers

Fusion Tables

f:id:shohu33:20160509174818j:plain

Fusion Tables というDB(平たくいうとGoogleが提供している地図情報と連携できるデータベースのようなものだそうです)は無料で使えそうとのことで以下ページを参考に試してみました。

support.google.com

Googleドライブでデータベースが使えるという衝撃 | 非IT企業に勤める中年サラリーマンのIT日記

上記サイトでは select, insert は例がのっていましたが、update に関しては記載がなかったので試してみます。

Fusion Tables は上記サイトを参考に使える状態にしておきます。

Fusion Tables に update 文実行

Update する際にどうも ROWID という行番号以外は指定できないようです。 このため事前に以下のようなselect文でROWIDを取得してから

// Utilities.formatString でなぜかサーバーエラーがでるようになるため文字列連結
var sql = "SELECT ROWID FROM "
+ ファイルID + " "
+ "WHERE "
+ "AND PROJECTID = '12345' "
;
var rowid = FusionTables.Query.sql(sql).rows[0];

以下のようなUpdate文で更新する必要があります。

  • これ誰か他に良い方法が他にあれば教えてください。
var sql = "UPDATE "
+ ファイルID + " "
+ "SET value = 1 "
+ "WHERE ROWID = '12345'
;
FusionTables.Query.sql(sql); // UPDATEされるはず

Fusion Tables の1テーブルごとに最大行数ってあるの?

ドキュメントがまだ見つからない、、、

support.google.com

どこかに記載あるのだろうか。

以下記事の情報もガセネタっぽい。

productforums.google.com