CassandraのCQL(コマンドライン上)でタイムスタンプを自動生成する方法をまとめます。
MySQLでいうところのDEFAULT CURRENT_TIMESTAMPのような機能になります。
1.タイムスタンプ型のカラムを用意する
当然ですが、タイムスタンプを格納するカラムはタイムスタンプ型でなければなりません。
1 2 3 4 5 |
create table test ( ... key text PRIMARY KEY, ... name text, ... createtime timestamp ... ); |
このようにテーブルにタイムスタンプのカラムを用意します。
2. INSERT文にtoTimestampメソッドを使う
タイムスタンプを自動入力するにはtoTimestampメソッドを使います。
1 2 |
insert into test(key, name, createtime) values ('key', 'senobi', toTimestamp(now())); |
このようにtimestamp型のカラムに対して、toTimestampメソッドを入れ込みます。
toTimestampメソッドの引数にはnowメソッドを入れます。これで、INSERTが実行された時間がタイムスタンプとして保存されることになります。
nowメソッドは引数をもたずに働いてくれるので何も入れる必要はありません。
3.INSERTを実行して自動更新をする
あとはこのINSERT文を入力するだけです。
コマンドライン上でタイムを自動更新してくれます。
注意:Cassandraが2.2.0以下の場合
上記の方法はCassandraのバージョンが2.2.0の場合に有効です。
稀だとは思いますが2.2.0以下の場合での方法を紹介します。
INSERT文にdateOfメソッドを使用する
INSERT時にdateOfメソッドを使用します。
1 2 |
insert into test(key, name, createtime) values ('key', 'senobi', dateOf(now())); |
コメントを残す