- 카테고리:
시스템 함수 (시스템 제어)
SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES¶
이 시스템 함수를 사용하여 기존 테이블에서 행 타임스탬프를 대량으로 활성화합니다.
이 함수는 컨테이너 내의 모든 기존 적격 테이블에 행 타임스탬프 열을 추가하고 새로 생성된 테이블에 행 타임스탬프가 자동으로 활성화되도록 합니다.
함수를 성공적으로 실행하려면 함수를 호출하는 컨테이너에 대한 MODIFY 권한이 필요합니다.
행 타임스탬프가 활성화된 후 테이블은 각 행이 마지막으로 수정된 타임스탬프를 반환하는 METADATA$ROW_LAST_COMMIT_TIME 열을 노출합니다. 이를 통해 행 수정 시간을 기반으로 변경 내용 추적, 증분 처리 및 Time-travel 쿼리를 활성화합니다. 자세한 내용은 행 타임스탬프를 사용하여 파이프라인의 대기 시간 측정 섹션을 참조하십시오.
구문¶
SELECT SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES('<level>', '<qualified_name>')
- The first argument is level: one of :code:`schema`, :code:`database`, or :code:`account`.
- The second argument is the fully qualified name of the container.
인자¶
필수 사항
'level'컨테이너 수준입니다.
account,database,schema중 하나일 수 있습니다.'qualified_name'컨테이너의 정규화된 이름입니다. 예를 들어, 스키마 수준의 경우 :code:`my_db.myschema`입니다.
예¶
다음 예제에서는 시스템 함수를 사용하여 특정 스키마 내에서 지원되는 모든 테이블에 대해 행 타임스탬프를 일괄 활성화하는 방법을 보여줍니다. 또한 해당 기능이 기존 테이블에 적용되었는지 확인하고 스키마 수준 기본값을 설정하여 향후 모든 테이블에 METADATA$ROW_LAST_COMMIT_TIME 열이 자동으로 포함되도록 합니다.
CREATE OR REPLACE DATABASE my_db;
CREATE OR REPLACE SCHEMA my_schema;
USE DATABASE my_db;
USE SCHEMA my_schema;
CREATE OR REPLACE TABLE my_table (id INT, v STRING);
CREATE OR REPLACE TRANSIENT TABLE my_transient_table (id INT, v STRING);
CREATE OR REPLACE TEMP TABLE my_temp_table (id INT, v STRING);
SELECT SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES(
'schema',
'my_db.my_schema'
);
-- System function sets the container default so that new tables will get row timestamp going forward
SHOW PARAMETERS LIKE 'ROW_TIMESTAMP_DEFAULT' IN SCHEMA my_db.my_schema;
INSERT INTO my_table VALUES (1, 'a'), (2, 'b');
INSERT INTO my_transient_table VALUES (10, 'x');
INSERT INTO my_temp_table VALUES (100, 'tmp');
SELECT ID, METADATA$ROW_LAST_COMMIT_TIME FROM my_table ORDER BY ID;
SELECT ID, METADATA$ROW_LAST_COMMIT_TIME FROM my_transient_table ORDER BY ID;
SELECT ID, METADATA$ROW_LAST_COMMIT_TIME FROM my_temp_table ORDER BY ID;