- 카테고리:
시스템 함수 (시스템 정보)
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 작업에 대해 반환 값이 증가합니다.
함수가 반환하는 값은 일반적으로, 데이터베이스 오브젝트가 마지막으로 변경된 시간의 근사치 이며, Epoch 시작 이후(즉, 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 |
+--------------------------------+