- カテゴリ:
システム関数 (システム情報)
SYSTEM$LAST_CHANGE_COMMIT_TIME¶
関数の2回の呼び出しの間にデータベーステーブルまたはビューが変更されたかどうかを検出するのに使用できるトークンを返します。呼び出しによって返されるトークンが別の呼び出しによって返されるトークンと異なる場合、通常はDML操作(たとえばINSERT)が原因で、2つの呼び出し間でテーブルまたはビューが変更されます。
指定されたデータベースオブジェクトがビューの場合、ビューによって参照されるデータベースオブジェクトの少なくとも1つが変更されました。
この関数は、システム関数(つまり、 SYSTEM$LAST_CHANGE_COMMIT_TIME
)として呼び出す必要があります。
構文¶
SYSTEM$LAST_CHANGE_COMMIT_TIME( '<object_name>' )
引数¶
object_name
テーブルまたはビューを指定します。
戻り値¶
戻り値のデータ型はスケールが0の NUMBER です。
使用上の注意¶
基になるテーブルデータが変更されたかどうかを判断するために、BI ツールなどのアプリケーションで値を使用できます。これは、ダッシュボードを表示し、テーブル内の新しいデータに基づいてダッシュボードを更新する必要があるかどうかを把握する必要があるアプリケーションに役立ちます。
指定されたテーブルまたは指定されたビューの基になるテーブルに対して実行されたDML操作ごとに、戻り値が増加します。
関数によって返される値は、通常、データベースオブジェクトが最後に変更された時刻の 近似値 であり、エポック開始から(つまり、1970年1月1日の深夜以降)のナノ秒単位の UTC タイムスタンプとして表されます。ただし、結果の精度とスキューが異なる可能性があるため、値は概算にすぎません。
注釈
Snowflakeは、ユーザーがこの値をあくまで変更のインジケータとしてのみ使用することを推奨しており、タイムスタンプとして扱うことは勧めていません。
例¶
CALL SYSTEM$LAST_CHANGE_COMMIT_TIME('mytable');
+--------------------------------+
| SYSTEM$LAST_CHANGE_COMMIT_TIME |
|--------------------------------|
| 1661920053987000000 |
+--------------------------------+
SELECT SYSTEM$LAST_CHANGE_COMMIT_TIME('mytable');
+--------------------------------+
| SYSTEM$LAST_CHANGE_COMMIT_TIME |
|--------------------------------|
| 1661920118648000000 |
+--------------------------------+
INSERT INTO mytable VALUES (2,100), (3,300);
SELECT SYSTEM$LAST_CHANGE_COMMIT_TIME('mytable');
+--------------------------------+
| SYSTEM$LAST_CHANGE_COMMIT_TIME |
|--------------------------------|
| 1661920131893000000 |
+--------------------------------+