Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$LAST_CHANGE_COMMIT_TIME

Gibt ein Token zurück, das verwendet werden kann, um festzustellen, ob eine Datenbanktabelle oder eine Ansicht zwischen zwei Funktionsaufrufen geändert wurde. Wenn sich das von einem Aufruf zurückgegebene Token von dem Token unterscheidet, das von einem separaten Aufruf zurückgegeben wird, dann hat sich die Tabelle oder die Ansicht zwischen den beiden Aufrufen geändert, typischerweise aufgrund einer DML-Operation (z. B. einer INSERT).

Wenn das angegebene Datenbankobjekt eine Ansicht ist, dann hat sich mindestens eines der Datenbankobjekte geändert, auf das die Ansicht verweist.

Die Funktion muss als Systemfunktion aufgerufen werden (d. h. SYSTEM$LAST_CHANGE_COMMIT_TIME).

Syntax

SYSTEM$LAST_CHANGE_COMMIT_TIME( '<object_name>'  )

Argumente

object_name

Gibt die Tabelle oder die Ansicht an.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist NUMBER mit einer Skalierung von 0.

Nutzungshinweise

  • Er kann in Anwendungen wie z. B. BI-Tools verwendet werden, um zu ermitteln, ob sich die zugrunde liegenden Tabellendaten seit der letzten Anzeige der Daten geändert haben. Dies kann für Anwendungen nützlich sein, die Dashboards anzeigen und herausfinden müssen, ob das Dashboard auf Basis der neuen Daten in der Tabelle aktualisiert werden muss.

  • Für jede DML-Operation, die auf der angegebenen Tabelle oder den zugrundeliegenden Tabellen in der angegebenen Ansicht ausgeführt wird, erhöht sich der zurückgegebene Wert.

  • The value returned by the function is typically an approximation of the time that the database object was last changed, expressed as the UTC timestamp in nanoseconds since the beginning of the epoch (i.e. since midnight January 1, 1970). However, the values are only approximations, in part because the precision and skew of the results can vary.

    Bemerkung

    Snowflake empfiehlt, diesen Wert nur als Änderungsindikator zu verwenden und rät den Benutzern dringend davon ab, diesen Wert als Zeitstempel zu behandeln.

Beispiele

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 |
+--------------------------------+
Zurück zum Anfang