카테고리:

시스템 함수 (시스템 정보)

SYSTEM$LAST_CHANGE_COMMIT_TIME

함수에 대한 두 호출 사이에 데이터베이스 테이블이나 뷰가 변경되었는지 여부를 감지하는 데 사용할 수 있는 토큰을 반환합니다. 호출에서 반환된 토큰이 별도의 호출에서 반환된 토큰과 다른 경우, 두 호출 사이에 테이블 또는 뷰가 변경된 것으로, 이는 일반적으로 DML 작업(예: INSERT)으로 인한 것입니다.

지정된 데이터베이스 오브젝트가 뷰인 경우, 뷰에서 참조하는 데이터베이스 오브젝트 중 하나 이상이 변경된 것입니다.

함수는 시스템 함수로 호출되어야 합니다(즉, 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 |
+--------------------------------+
맨 위로 이동