- 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>' )
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 |
+--------------------------------+
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 |
+--------------------------------+