SYSTEM$LAST_CHANGE_COMMIT_TIME

SYSTEM$LAST_CHANGE_COMMIT_TIME

SYSTEM$LAST_CHANGE_COMMIT_TIME 함수는 데이터베이스 테이블이나 뷰가 변경되었는지 감지할 수 있는 토큰을 반환해요.

출처: SYSTEM$LAST_CHANGE_COMMIT_TIME

본문

SYSTEM$LAST_CHANGE_COMMIT_TIME 함수는 함수에 대한 두 호출 사이에 데이터베이스 테이블이나 뷰가 변경되었는지 감지하는 데 사용할 수 있는 토큰을 반환해요. 호출에 의해 반환된 토큰이 별도의 호출에 의해 반환된 토큰과 다르면, 두 호출 사이에 테이블이나 뷰가 변경된 것이며, 일반적으로 DML 작업(예: INSERT)으로 인한 것이에요.

지정된 데이터베이스 객체가 뷰라면, 뷰에서 참조하는 데이터베이스 객체 중 하나 이상이 변경된 것이에요.

구문 (Syntax)

SYSTEM$LAST_CHANGE_COMMIT_TIME( '<object_name>'  )

인자 (Arguments)

  • object_name — 테이블 또는 뷰를 지정해요.

반환 (Returns)

반환 값의 데이터 타입은 스케일이 0인 NUMBER예요.

사용 메모 (Usage notes)

  • 값은 BI 도구와 같은 애플리케이션에서 기반 테이블 데이터가 변경되었는지 판단하는 데 사용할 수 있어요. 이는 대시보드를 표시하고 테이블의 새 데이터를 기준으로 대시보드를 업데이트해야 하는지 파악해야 하는 애플리케이션에 유용해요.
  • 지정된 테이블 또는 지정된 뷰의 기반 테이블에서 수행된 각 DML 작업에 대해 반환 값이 증가해요.
  • 함수가 반환하는 값은 일반적으로 데이터베이스 객체가 마지막으로 변경된 시간의 근사치이며, 에포크(epoch) 시작(즉, 1970년 1월 1일 자정) 이후의 나노초 단위 UTC 타임스탬프로 표현한 것이에요. 그러나 값은 정밀도와 편향(skew)이 달라질 수 있으므로 근사값일 뿐이에요.

참고: Snowflake는 이 값을 변경 표시자(change indicator)로만 사용할 것을 권장하며, 이 값을 타임스탬프로 취급하는 것을 강력히 권장하지 않아요.

예제 (Examples)

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

더 알아보기 (Learn more)

  • 시스템 함수 (System functions)
  • 시스템 정보 함수 (System Information)