カテゴリ:

システム関数 (システム情報)

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操作ごとに、戻り値が増加します。

  • The value returned by the function is typically an approximation of the time that the database object was last changed, expressed as the UTC timestamp in nanoseconds since the beginning of the epoch (i.e. since midnight January 1, 1970). However, the values are only approximations, in part because the precision and skew of the results can vary.

    注釈

    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 |
+--------------------------------+