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

スポンサーリンク

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行ずつ更新することになります。

FusionTablesとの連携について まとめ

  • FusionTablesのレコード取得・更新にはdocidを指定する
  • レコードを取得するにはSELECT文を用いる
  • レコードを更新するにはUPDATE文を用いる
  • レコードを更新・削除する際には一意のレコードを指定するためROWIDが必要

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

以上、「【GoogleApps Script(GAS)】FutionTablesとの連携について」でした。

スポンサーリンク

シェアする

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

フォローする