Categorias:

Funções do sistema (Controle do sistema)

SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES

Use essa função do sistema para habilitar em massa os carimbos de data/hora de linha em tabelas existentes.

Essa função adiciona a coluna de carimbo de data/hora da linha a todas as tabelas elegíveis existentes dentro do contêiner e garante que as tabelas recém-criadas tenham automaticamente os carimbos de data/hora de linha ativados.

Para executar a função com sucesso, você precisa de privilégios MODIFY no contêiner em que está invocando a função.

Após a ativação dos carimbos de data/hora de linha, as tabelas expõem a coluna METADATA$ROW_LAST_COMMIT_TIME, que retorna o carimbo de data/hora da última modificação de cada linha. Isso permite o rastreamento de alterações, o processamento incremental e as consultas do Time Travel com base no horário de modificação da linha. Para obter mais informações, consulte Usar carimbos de data/hora de linha para medir a latência em seus pipelines.

Sintaxe

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.
Copy

Argumentos

Obrigatório

'level'

Nível do contêiner. Pode ser um destes: account, database, schema.

'qualified_name'

O nome totalmente qualificado do contêiner. Por exemplo, my_db.myschema para nível do esquema.

Exemplos

O exemplo a seguir demonstra como habilitar carimbos de data/hora em massa para todas as tabelas compatíveis em um esquema específico usando uma função do sistema. Ele também verifica se o recurso é aplicado às tabelas existentes e define o padrão no nível do esquema para garantir que todas as tabelas futuras incluam automaticamente a coluna 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;
Copy