- Catégories :
Fonctions système (Contrôle du système)
SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES¶
Utilisez cette fonction système pour activer les horodatages de ligne de manière groupée sur les tables existantes.
Cette fonction ajoute la colonne d’horodatage des lignes à toutes les tables éligibles existantes dans le conteneur et veille à ce que l’horodatage des lignes des tables nouvellement créées soit automatiquement activé.
Pour exécuter correctement la fonction, vous avez besoin des privilèges MODIFY sur le conteneur sur lequel vous appelez la fonction.
Une fois les horodatages de lignes activés, les tables exposent la colonne METADATA$ROW_LAST_COMMIT_TIME, qui renvoie l’horodatage de la dernière modification de chaque ligne. Cela permet le suivi des modifications, le traitement incrémentiel et les requêtes Time Travel basées sur l’heure de modification des lignes. Pour plus d’informations, voir Utiliser des horodatages de lignes pour mesurer la latence dans vos pipelines.
Syntaxe¶
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.
Arguments¶
Nécessaire
'level'Niveau du conteneur. Il peut prendre la forme suivante :
account,database,schema.'qualified_name'Nom pleinement qualifié de l’image du conteneur. Par exemple,
my_db.myschemapour le niveau du schéma.
Exemples¶
L’exemple suivant montre comment activer en masse les horodatages de lignes pour toutes les tables prises en charge dans un schéma spécifique à l’aide d’une fonction système. Elle vérifie également que la fonctionnalité est appliquée aux tables existantes et définit le paramètre par défaut au niveau du schéma pour garantir que toutes les tables futures incluent automatiquement la colonne 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;