2016-05-09 4 views
1

列の作成と最終更新/アクセスタイムスタンプを自動更新できる方法はありますか?cassandra lastupdated(auto_now)、lastaccessed and created(auto_now_add)

toTimestamp(now())機能を使用すると、作成時間を保存できます。しかし、最後に変更された時刻を取得するために使用されるwritetime(name)のような機能を持っていますか?作成とアクセス時間を読み取るための同様の関数はありますか?

タイムスタンプをすべて取得できる方法はありますかlastupdated/lastaccessedcreatedタイムスタンプは自動生成され保存されていますか?

答えて

0

はい、writetime関数がありますが、それはプライマリ以外のキー列でのみ動作します。

[email protected]:stackoverflow> SELECT name,description,writetime(description) 
FROm bookbyname WHERE name='Patriot Games'; 

name   | writetime(description) | description 
---------------+------------------------+------------------------------------------------------------------------------------------------ 
Patriot Games |  1442340092257821 | Jack Ryan saves England's next king, and becomes the target of an IRA splinter terrorism cell. 

カッサンドラは、最後にアクセスされた/読み込まれた、またはそのようなものは記録しません。

カサンドラで最後に書き込みが行われたため、最後に更新され作成されたものは同じになります。しかし、あなたが変わったと知っている列があって、あなたが変わっていないことを知っている列があれば、両方の書き込み時間を得ることができます。

+0

私が考えることができる解決策は、最後にアクセス/更新され、UDTを作成することによって作成されたクエリを読み取り、列を設定することです(フリーズが必要です)。ダミー列を追加しても、デフォルトではnilに設定されているため、WRITETIMEは機能しません。私は1つのexec()を持っていたが、2つのステップが必須であるようだ。 –

関連する問題