例: TTLの更新
この例では、行の有効期限の更新を示します。表の作成とデータの挿入については、「例: 行の更新」を参照してください。
例7-35 表のTTL値を更新する
TTL値に10時間を指定してPeople
表が作成されており、2017-06-01T10:05:30.0という時間に、idが5の行が挿入されたとします。挿入時に明示的なTTLが指定されなかったため、そのときに計算された有効期限は2017-06-01T21:00:00.0です。最後に、次の更新文が2017-06-01T12:35:30.0 (挿入後2.5時間)に実行されるとします
UPDATE People $p
SET TTL remaining_hours($p) + 3 hours
WHERE id = 5
上の文は、行の存続期間を3時間延長します。具体的には、remaining_hours
関数は、行の有効期限までの残り時間数を返します。「remaining_hours関数」関数を参照してください。この例では、この数値は8です。したがって、新しいTTL値は8 +3 = 11で、行の有効期限は2017-06-02:T08:00:00.0に設定されます。
People
の表別名を名付ける際に'$'文字が使用されていることに注目してください。これは、その表別名が行変数(表のすべての行にわたる変数)として機能するようにし、その結果それをremaining_hours
関数に引数として渡すことができるようにするために必要です($を使用しなかった場合は、remaining_hours(p
)をコールするとエラーが返されます。これは、p
が名前"p"の最上位レベルの表列への参照として解釈されるためです)。