카테고리:

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

SYSTEM$LAST_CHANGE_COMMIT_TIME

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

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

함수는 시스템 함수로 호출되어야 합니다(즉, SYSTEM$LAST_CHANGE_COMMIT_TIME).

구문

SYSTEM$LAST_CHANGE_COMMIT_TIME( '<object_name>'  )
Copy

인자

object_name

테이블 또는 뷰를 지정합니다.

반환

반환된 값의 데이터 타입은 스케일이 0인 NUMBER입니다.

사용법 노트

  • 이 값은 BI 도구와 같은 애플리케이션에서 기본 테이블 데이터의 변경 여부를 확인하는 데 사용할 수 있습니다. 이는 대시보드를 표시하고 테이블의 새 데이터를 기반으로 대시보드를 업데이트해야 하는지 여부를 파악해야 하는 애플리케이션에 유용할 수 있습니다.

  • 지정된 뷰의 지정된 테이블 또는 기본 테이블에 대해 수행된 각 DML 작업에 대해 반환 값이 증가합니다.

  • 함수가 반환하는 값은 일반적으로, 데이터베이스 오브젝트가 마지막으로 변경된 시간의 근사치 이며, Epoch 시작 이후(즉, 1970년 1월 1일 자정 이후) UTC 타임스탬프(나노초)로 표시됩니다. 그러나 값은 근사치일 뿐입니다. 그 부분적인 이유로는, 결과의 정밀도 및 왜곡이 다양할 수 있다는 점 때문입니다.

    참고

    Snowflake는 이 값을 변경 표시기로만 사용할 것을 권장하며, 사용자가 이 값을 타임스탬프로 취급하지 않을 것을 강력히 권장합니다.

CALL SYSTEM$LAST_CHANGE_COMMIT_TIME('mytable');

+--------------------------------+
| SYSTEM$LAST_CHANGE_COMMIT_TIME |
|--------------------------------|
|            1661920053987000000 |
+--------------------------------+
Copy
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 |
+--------------------------------+
Copy