Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$LAST_CHANGE_COMMIT_TIME

Retorna um token que pode ser usado para detectar se uma tabela ou exibição de banco de dados mudou entre duas chamadas para a função. Se o token devolvido por uma chamada for diferente do token devolvido por uma chamada separada, então a tabela ou exibição mudou entre as duas chamadas, normalmente devido a uma operação DML (por exemplo, um INSERT).

Se o objeto de banco de dados especificado for uma exibição, então pelo menos um dos objetos de banco de dados referenciados pela exibição mudou.

A função deve ser chamada como uma função do sistema (isto é, SYSTEM$LAST_CHANGE_COMMIT_TIME).

Sintaxe

SYSTEM$LAST_CHANGE_COMMIT_TIME( '<object_name>'  )
Copy

Argumentos

object_name

Especifica a tabela ou visualização.

Retornos

O tipo de dados do valor retornado é NUMBER com uma escala de 0.

Notas de uso

  • O valor pode ser usado em aplicativos como ferramentas BI para determinar se os dados da tabela subjacente foram alterados. Isto pode ser útil para aplicativos que exibem painéis de controle e precisam descobrir se o painel precisa ser atualizado com base nos novos dados da tabela.

  • Para cada operação DML realizada na tabela especificada ou nas tabelas subjacentes na exibição especificada, o valor retornado aumenta.

  • O valor retornado pela função é normalmente uma aproximação da hora em que o objeto de banco de dados foi modificado pela última vez, expressa como o carimbo de data/hora UTC em milissegundos desde o início da época (ou seja, desde a meia-noite de 1º de janeiro de 1970). Entretanto, os valores são apenas aproximações, em parte porque a precisão e a inclinação dos resultados podem variar.

    Nota

    O Snowflake recomenda usar este valor apenas como um indicador de mudança e desencoraja fortemente os usuários de tratar este valor como um carimbo de data/hora.

Exemplos

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