ゼロからはじめるぜ! Twilio – シーズン2 第5回

20140204-01.jpgこんにちわ。ネットワークエンジニアのまさです。
前回に引き続き、まだ残っているデータベース周りの作業を行います。前回は、Twimllet Commander Zで使うテーブルを収めるためのデータベースを作りました。今回は twimllet という名前のテーブルを作ってみましょう。

以下のようなテーブルを完成させます。

20140204-02.jpgまずは MySQL に接続しましょう。MySQL のユーザ名とパスワードは前回作ったものに読み替えてください。

# mysql -u masa -phogehoge

で、前回作成した db_masa というデータベースの中にテーブルを作りますので、MySQLに「db_masa を使うんだぜ」と伝えます。

mysql> use db_masa ;

database changed と出れば OK です。続けて、以下の SQL をペーストします。
MySQL では、SQL 文の最後に ; が必要です。; がない改行は、まだ SQL の続きを待つため -> というプロンプトを返してきます。

CREATE TABLE twimllet (

 id int(5) NOT NULL default auto_increment,
 sta_no int(5) default NULL,
 location varchar(32) default NULL,
 stat varchar(12) default NULL,
 type varchar(8) default NULL,
 flag varchar(8) default NULL,
 PRIMARY KEY (id)
);

エラーがでなければテーブルが作成されたはずです。確認してみましょう。

mysql> desc twimllet ;

冒頭の図のようなテーブル詳細が表示されれば OK です。
では、早速このテーブルになにかデータをいれてみます。以下をペーストしてください。各カラムのデータは何でもいいのですが、この後作っていく Twimllet Commander Z のために、以下のルールでデータを挿入します。

  • sta_no → 5 桁までの整数を入れます。
  • location → 適当で構いません。
  • stat → 適当で構いません。
  • type → 適当で構いません。
  • flag → 空にするか armed にするかどちらか。

flag はこの後の作り込みで armed か 空か、のどちらかを取るようにしますので、flag の欄は適当な文字列にはしないでください。以下のような SQL で行が追加されます。

mysql> insert into twimllet (sta_no, location, stat, type, flag) values ("1","192.168.50.151:7750","0","TOTO","" );

うまく挿入できたか以下の SQL で確認しましょう。

mysql> select * from twimllet ;

どうでしょう、1 行が選択されたでしょうか。せっかくなので、同じ要領で insert 文を発行し、いくつか行を追加してみてください。

これで、Twimllet Commander Z でいじくるためのデータベース環境が整いました。
実際には、電話で sta_no の番号を指定し flag を armed にしたり(武装モード ON)、空にしたり(武装モード OFF)にする、というモノを作ります。

あ、そうだ! 今「select で行を選択する」ということをやったので、ついでに「更新する」ということもやっておきましょう。例えば、テーブル twimllet が以下の状態だったとします。

mysql> select * from twimllet ;

idsta_nolocationstattypeflag
1 1 192.168.10.15:7750 ONLINE TOTO null
2 2 192.168.0.28:7750 IN USE TOTO armed
3 3 192.168.1.35:7750 ONLINE INAX null

3 rows in set (0.00 sec)

で、このうち、sta_no が 1 の flag を armed にしたいとします。この場合は、以下の SQL を発行します。

mysql> update twimllet set flag = 'armed' where sta_no = 1 ;

今度は反対に、sta_no が 2 の flag を 空 にしてみます。

mysql> update twimllet set flag = '' where sta_no = 2 ;

これでもう一度 select してみましょう、こうなったはずです。

mysql> select * from twimllet ;

idsta_nolocationstattypeflag
1 1 192.168.10.15:7750 ONLINE TOTO armed
2 2 192.168.0.28:7750 IN USE TOTO null
3 3 192.168.1.35:7750 ONLINE INAX null

3 rows in set (0.00 sec)

これから作ろうとしている Twimllet Commander Z では、電話をかけてプッシュ操作することで、これらの SQL を流すということを実現します。

今回はここまでにしておきましょう、次回はこの SQL を流すための Perl スクリプトを作ります。お楽しみに!

おまけのひとこと

しかし、寒いですね、とても。先月の記事ですけど、アメリカは大寒波でナイアガラの滝が凍るという、それはもうすさまじいことになっています。

https://www.youtube.com/watch?v=A9rQpNFgWkQ

この時期は、夜、迂闊にコタツでウトウトできませんね。いい具合にウトウトした頃、寝室に向かわなきゃ時間にコタツから出るのは本当に苦行です。

是非、この葛藤を乗り越え、暖の誘惑、自分への甘え、あと 5 分だけ、自分への甘え、人生への甘え、将来設計への甘え、この地球に対する甘え に打ち克ち、颯爽と寝室に向かって頂きたいと願っています。

この記事をシェア

最新記事

すべての記事へ