【GoogleApps Script(GAS)】GoogleAppsScript FutionTablesとの連携について

スポンサーリンク

GoogleAppsScript FusionTablesとの連携について

今回は、GoogleAppsScript(GAS)でFusionTablesを操作(テーブルの参照・更新)する方法をご紹介します。

FusionTablesとは
Google社が提供しているデータベースサービス。

FusionTablesのレコード取得方法

まずはFusionTablesのレコード取得方法を以下に記載します。

【サンプルコード】


  var tableId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //FusionTablesのdocidを指定
  var sql = 'SELECT ROWID, [項目] FROM ' + tableId + " WHERE [選択条件] = "xxxxx";
  var result = FusionTables.Query.sqlGet(sql);
  return result.rows;

【解説】

レコードの取得にはSELECT文を使います。
変数「tableID」にFusionTablesのDocIDを代入します。
これでFusionTalbesのどのテーブルのレコードを取得するかを指定しています。
また変数「sql」でSQL文を文字列として代入して、「FusionTables.Query.sqlGet()」を使ってSQL文を発行しています。

取得時にテーブルの「ROWID」というレコードを一意に表す項目を取得していますがこれは省略可能です。
しかし、レコードの更新や削除のときに必要になるのが「ROWID」なので注意が必要です。
更新や削除は次の文章で説明します。

FusionTablesのレコード更新方法

つづいてFusionTablesのレコード更新方法を以下に記載します。

【サンプルコード】


  var tableId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //FusionTablesのdocidを指定
  var sql = "UPDATE " + tableId + " SET [更新したい項目] = [更新したい値] WHERE ROWID = [ROWIDの値]";
  var result = FusionTables.Query.sql(sql);
  return result.rows;

【解説】

レコードの更新にはUPDATE文を使います。
SELECT文と同様にFusionTablesのDOCIDを指定してテーブルを指定します。
「SET」のあとに更新したい項目とその変更値(複数可)を指定します。
このときに「ROWID」で一意のレコードを指定するようにします。
FusionTablesの仕様として、更新や削除のときはROWIDの指定が必要です。
検索条件で絞り込んでも更新や削除の処理はできないようです。(記事掲載時点)
つまり1レコードずつしか更新処理ができませんので、複数行をまとめて更新することはできません。
もし複数行を変更したい場合は、For文を使ってROWIDを順次指定していき1行ずつ更新することになります。

少しくせのあるレコード方法ですが、慣れてしまえばどうということはありません。
みなさんもぜひ試してみてください。

以上、「GoogleAppsScript FusionTablesとの連携について」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする