ALTER TABLE (Ereignistabellen)¶
Ändert die Eigenschaften, Spalten oder Einschränkungen einer bestehenden Ereignistabelle.
- Siehe auch:
CREATE EVENT TABLE, DROP TABLE, SHOW EVENT TABLES, DESCRIBE EVENT TABLE
Syntax¶
ALTER TABLE [ IF EXISTS ] <name> RENAME TO <new_table_name>
ALTER TABLE [ IF EXISTS ] <name> clusteringAction
ALTER TABLE [ IF EXISTS ] <name> dataGovnPolicyTagAction
ALTER TABLE [ IF EXISTS ] <name> searchOptimizationAction
ALTER TABLE [ IF EXISTS ] <name> SET
[ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
[ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
[ CHANGE_TRACKING = { TRUE | FALSE } ]
[ COMMENT = '<string_literal>' ]
ALTER TABLE [ IF EXISTS ] <name> UNSET {
DATA_RETENTION_TIME_IN_DAYS |
MAX_DATA_EXTENSION_TIME_IN_DAYS |
CHANGE_TRACKING |
COMMENT |
}
Wobei:
clusteringAction ::= { CLUSTER BY ( <expr> [ , <expr> , ... ] ) | { SUSPEND | RESUME } RECLUSTER | DROP CLUSTERING KEY }dataGovnPolicyTagAction ::= { SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ] | UNSET TAG <tag_name> [ , <tag_name> ... ] } | { ADD ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , ... ] ) | DROP ROW ACCESS POLICY <policy_name> | DROP ROW ACCESS POLICY <policy_name> , ADD ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , ... ] ) | DROP ALL ROW ACCESS POLICIES }searchOptimizationAction ::= { ADD SEARCH OPTIMIZATION [ ON <search_method_with_target> [ , <search_method_with_target> ... ] ] | DROP SEARCH OPTIMIZATION [ ON { <search_method_with_target> | <column_name> | <expression_id> } [ , ... ] ] }Weitere Details dazu finden Sie unter Suchoptimierungsaktionen (searchOptimizationAction).
Parameter¶
name
Bezeichner für die zu ändernden Ereignistabelle. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.
RENAME TO new_table_name
Benennt die angegebene Ereignistabelle mit einem neuen Bezeichner um, der derzeit von keiner anderen Ereignistabelle im Schema verwendet wird.
Weitere Informationen zu den Bezeichnern von Ereignistabellen finden Sie unter Anforderungen an Bezeichner.
Sie können das Objekt in eine andere Datenbank und/oder in ein anderes Schema verschieben und dabei optional das Objekt umbenennen. Geben Sie dazu einen qualifizierten
new_name
-Wert an, der den neuen Datenbank- und/oder Schemanamen im Formatdb_name.schema_name.object_name
bzw.schema_name.object_name
enthält.Bemerkung
Die Zieldatenbank und/oder das Zielschema müssen bereits vorhanden sein. Außerdem darf in der Zieldatenbank nicht bereits ein gleichnamiges Schema vorhanden sein, da die Anweisung sonst einen Fehler zurückgibt.
Das Verschieben eines Objekts in ein verwaltetes Zugriffsschema ist nicht zulässig, es sei denn, der Objekteigentümer (d. h. die Rolle mit der Berechtigung OWNERSHIP für das Objekt) ist auch Eigentümer des Zielschemas.
Wenn ein Objekt (Tabelle, Spalte usw.) umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.
SET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für die Ereignistabelle festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen):
DATA_RETENTION_TIME_IN_DAYS = integer
Parameter auf Objektebene, der die Aufbewahrungsfrist der Ereignistabelle für Time Travel ändert. Weitere Details dazu finden Sie unter Verstehen und Verwenden von Time Travel und Verwenden von temporären und transienten Tabellen.
Eine ausführliche Beschreibung dieses Parameters sowie weitere Informationen zu Objektparametern finden Sie unter Parameter.
Werte:
Standardausführung:
0
oder1
Enterprise Edition:
0
bis90
für permanente Ereignistabellen0
oder1
für temporäre und transiente Ereignistabellen
Bemerkung
Der Wert
0
deaktiviert Time Travel für die Ereignistabelle.MAX_DATA_EXTENSION_TIME_IN_DAYS = integer
Objektparameter, der die maximale Anzahl von Tagen angibt, für die Snowflake die Datenaufbewahrungsfrist für die Ereignistabelle verlängern kann, um zu verhindern, dass Streams auf der Ereignistabelle veralten.
Eine detaillierte Beschreibung dieses Parameters finden Sie unter MAX_DATA_EXTENSION_TIME_IN_DAYS.
CHANGE_TRACKING = TRUE | FALSE
Gibt an, dass die Änderungsverfolgung in der Ereignistabelle aktiviert oder deaktiviert werden soll.
TRUE
aktiviert die Änderungsverfolgung auf der Ereignistabelle. Diese Option fügt der Quellereignistabelle ein Paar ausgeblendeter Spalten hinzu und beginnt mit dem Speichern von Metadaten zur Änderungsverfolgung in den Spalten. Diese Spalten verbrauchen nur wenig Speicherplatz.Die Änderungsverfolgungsmetadaten können mithilfe der CHANGES-Klausel für SELECT-Anweisungen oder durch Erstellen und Abfragen eines oder mehrerer Streams auf der Ereignistabelle abgefragt werden.
FALSE
deaktiviert die Änderungsverfolgung der Ereignistabelle. Das Paar versteckter Spalten wird aus der Ereignistabelle entfernt.
COMMENT = 'string_literal'
Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar für die Ereignistabelle.
UNSET ...
Gibt eine oder mehrere Eigenschaften/Parameter an, die für die Ereignistabelle nicht festgelegt werden sollen, wodurch sie auf ihre Standardwerte zurückgesetzt werden:
DATA_RETENTION_TIME_IN_DAYS
MAX_DATA_EXTENSION_TIME_IN_DAYS
CHANGE_TRACKING
COMMENT
Data-Governance-Richtlinie und Tag-Aktionen (dataGovnPolicyTagAction
)¶
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.
policy_name
Bezeichner für die Richtlinie. Dieser muss für Ihr Konto eindeutig sein.
Die folgenden Klauseln gelten für alle Tabellentypen, die Zeilenzugriffsrichtlinien unterstützen, wie z. B. Tabellen, Ansichten und Ereignistabellen. Der Einfachheit halber wird in den Klauseln nur von „Tabelle“ gesprochen.
ADD ROW ACCESS POLICY policy_name ON (col_name [ , ... ])
Fügt der Tabelle eine Zeilenzugriffsrichtlinie hinzu.
Es muss mindestens ein Spaltenname angegeben werden. Zusätzliche Spalten können mit einem Komma zwischen den einzelnen Spaltennamen angegeben werden. Verwenden Sie diesen Ausdruck, um eine Zeilenzugriffsrichtlinie sowohl zu einer Ereignistabelle als auch zu einer externen Tabelle hinzuzufügen.
DROP ROW ACCESS POLICY policy_name
Entfernt eine Zeilenzugriffsrichtlinie aus der Tabelle.
Verwenden Sie diese Klausel, um die Richtlinie in der Tabelle zu löschen.
DROP ROW ACCESS POLICY policy_name, ADD ROW ACCESS POLICY policy_name ON ( col_name [ , ... ] )
Löscht mit nur einer einzigen SQL-Anweisung die für die Tabelle festgelegte Zeilenzugriffsrichtlinie und fügt eine Zeilenzugriffsrichtlinie zu derselben Tabelle hinzu.
DROP ALL ROW ACCESS POLICIES
Löscht alle Zuordnungen von Zeilenzugriffsrichtlinien aus der Tabelle.
Dieser Ausdruck ist hilfreich, wenn eine Zeilenzugriffsrichtlinie aus einem Schema gelöscht wird, bevor die Richtlinie aus einer Ereignistabelle gelöscht wird. Verwenden Sie diesen Ausdruck, um Zuordnungen von Zeilenzugriffsrichtlinien aus der Tabelle zu löschen.
SET AGGREGATION POLICY policy_name [ FORCE ]
Weist der Tabelle eine Aggregationsrichtlinie zu. Verwenden Sie den optionalen Parameter FORCE, um eine bestehende Aggregationsrichtlinie atomar durch die neue Aggregationsrichtlinie zu ersetzen.
UNSET AGGREGATION POLICY
Löst die Zuordnung einer Aggregationsrichtlinie zu der Tabelle auf.
Clustering-Aktionen (clusteringAction
)¶
CLUSTER BY ( expr [ , expr , ... ] )
Gibt eine oder mehrere Spalten oder Spaltenausdrücke einer Ereignistabelle als Gruppierungsschlüssel für eine Ereignistabelle an (oder ändert sie). Dies sind die Spalten/Ausdrücke, für die das Clustering mit Automatic Clustering verwaltet wird.
Wichtig
Gruppierungsschlüssel sind nicht für alle Ereignistabellen vorgesehen oder empfehlenswert. Sie eignen sich vorrangig für sehr große Ereignistabellen (im Multi-Terabyte-Bereich).
Bevor Sie Gruppierungsschlüssel für eine Ereignistabelle angeben, lesen Sie erst Grundlegendes zu Tabellenstrukturen in Snowflake.
SUSPEND | RESUME RECLUSTER
Aktiviert oder deaktiviert Automatic Clustering für die Ereignistabelle.
DROP CLUSTERING KEY
Löscht den Gruppierungsschlüssel für die Ereignistabelle.
Weitere Informationen zu Gruppierungsschlüsseln und Reclustering finden Sie unter Grundlegendes zu Tabellenstrukturen in Snowflake.
Suchoptimierungsaktionen (searchOptimizationAction
)¶
ADD SEARCH OPTIMIZATION
Fügt die Suchoptimierung für die gesamte einer Ereignistabelle oder bei Angabe der optionale ON-Klausel für bestimmte Spalten hinzu.
Hinweis:
Die Wartung der Suchoptimierung kann teuer werden, insbesondere wenn sich die Daten in der einer Ereignistabelle häufig ändern. Weitere Informationen dazu finden Sie unter Abschätzen und Verwalten der Kosten für die Suchoptimierung.
Wenn Sie versuchen, einer materialisierten Ansicht eine Suchoptimierung hinzuzufügen, gibt Snowflake eine Fehlermeldung zurück.
ON search_method_with_target [, search_method_with_target ... ]
Gibt an, dass Sie die Suchoptimierung für bestimmte Spalten oder VARIANT-Felder (und nicht für die gesamte einer Ereignistabelle) konfigurieren möchten.
Verwenden Sie für
search_method_with_target
einen Ausdruck mit der folgenden Syntax:<search_method>(<target> [, ...])
Wobei:
search_method
gibt eine der folgenden Methoden an, die Abfragen für einen bestimmten Prädikatstyp optimieren:Suchmethode
Beschreibung
EQUALITY
Gleichheits- und IN-Prädikate.
SUBSTRING
Prädikate, die mit Teilzeichenfolgen und regulären Ausdrücken übereinstimmen (z. B. [ NOT ] LIKE, [ NOT ] ILIKE, [ NOT ] RLIKE oder REGEXP_LIKE)
GEO
Prädikate, die GEOGRAPHY-Typen verwenden.
target
gibt die Spalte, das VARIANT-Feld oder ein Sternchen (*) an.Je nach dem Wert von
search_method
können Sie eine Spalte oder ein VARIANT-Feld eines der folgenden Typen angeben:Suchmethode
Unterstützte Ziele
EQUALITY
Spalten mit numerischen, Zeichenfolgen-, Binär- und VARIANT-Datentypen, einschließlich Pfaden zu Feldern in VARIANT-Werten.
Um ein VARIANT-Feld anzugeben, verwenden Sie einen Pfad zu einem Feld mit Doppelpunkten als Trennzeichen (z. B.
my_column:my_field_name:my_nested_field_name
), oder Sie verwenden Punkt- oder Klammernotation (z. B.my_column:my_field_name.my_nested_field_name
odermy_column['my_field_name']['my_nested_field_name']
).Wenn Sie ein VARIANT-Feld angeben, gilt die Konfiguration für alle verschachtelten Felder unter diesem Feld. Angenommen, Sie geben
ON EQUALITY(src:a.b)
an:Diese Konfiguration kann Abfragen auf
on src:a.b
und auf allen verschachtelten Feldern (z. B.src:a.b.c
,src:a.b.c.d
) verbessern.Diese Konfiguration wirkt sich nicht auf Abfragen aus, die das Präfix
src:a.b
nicht verwenden (z.B.src:a
,src:z
).
SUBSTRING
Spalten von Zeichenfolgen-Datentypen
GEO
Spalten vom Datentyp GEOGRAPHY
Um alle zutreffenden Spalten in der einer Ereignistabelle als Ziele anzugeben, verwenden Sie das Sternchen (
*
).Beachten Sie, dass Sie für eine gegebene Suchmethode nicht sowohl Sternchen als auch spezifische Spaltennamen angeben können. Sie können jedoch Sternchen bei verschiedenen Suchmethoden angeben.
Sie können zum Beispiel die folgenden Ausdrücke angeben:
-- Allowed ON SUBSTRING(*) ON EQUALITY(*), SUBSTRING(*), GEO(*)
Die folgenden Ausdrücke können Sie nicht angeben:
-- Not allowed ON EQUALITY(*, c1) ON EQUALITY(c1, *) ON EQUALITY(v1:path, *) ON EQUALITY(c1), EQUALITY(*)
Wenn Sie mehr als eine Suchmethode für ein Ziel angeben möchten, trennen Sie jede nachfolgende Methode und jedes Ziel durch ein Komma:
ALTER TABLE t1 ADD SEARCH OPTIMIZATION ON EQUALITY(c1), EQUALITY(c2, c3);
Wenn Sie den Befehl ALTER TABLE … ADD SEARCH OPTIMIZATION ON … mehrfach für dieselbe einer Ereignistabelle ausführen, wird jeder nachfolgende Befehl zu der bestehenden Konfiguration der Ereignistabelle hinzugefügt. Angenommen, Sie führen die folgenden Befehle aus:
ALTER TABLE t1 ADD SEARCH OPTIMIZATION ON EQUALITY(c1, c2); ALTER TABLE t1 ADD SEARCH OPTIMIZATION ON EQUALITY(c3, c4);
Damit werden Gleichheitsprädikate für die Spalten c1, c2, c3 und c4 zur Konfiguration der Ereignistabelle hinzugefügt. Dies ist gleichbedeutend mit der Ausführung des Befehls:
ALTER TABLE t1 ADD SEARCH OPTIMIZATION ON EQUALITY(c1, c2, c3, c4);
Weitere Beispiele finden Sie unter Aktivieren der Suchoptimierung für bestimmte Spalten.
DROP SEARCH OPTIMIZATION
Entfernt die Suchoptimierung von der gesamten Ereignistabelle oder bei Angabe der optionale ON-Klausel von bestimmten Spalten.
Hinweis:
Wenn eine Ereignistabelle die Suchoptimierungseigenschaft hat, bleibt die Suchoptimierungseigenschaft beim Löschen oder Wiederherstellen der Ereignistabelle erhalten.
Das Entfernen der Suchoptimierungseigenschaft aus einer Ereignistabelle und das anschließende Hinzufügen verursachen die gleichen Kosten wie das erstmalige Hinzufügen.
ON search_method_with_target | column_name | expression_id [, ... ]
Gibt an, dass Sie die Suchoptimierungskonfiguration für bestimmte Spalten oder VARIANT-Felder (und nicht von der gesamten Ereignistabelle) entfernen möchten.
Um die zu löschende Spaltenkonfiguration zu identifizieren, verwenden Sie eine der folgenden Optionen:
Geben Sie für
search_method_with_target
eine Methode zur Optimierung von Abfragen für ein oder mehrere bestimmte Ziele an, die Spalten oder VARIANT-Felder sein können. Verwenden Sie die oben beschriebene Syntax.Geben Sie für
column_name
den Namen der für die Suchoptimierung konfigurierten Spalte an. Durch die Angabe des Spaltennamens werden alle Ausdrücke für diese Spalte gelöscht, einschließlich der Ausdrücke, die VARIANT-Felder in der Spalte verwenden.Geben Sie für
expression_id
die ID eines Ausdrucks an, der in der Ausgabe des Befehls DESCRIBE SEARCH OPTIMIZATION aufgeführt ist.
Wenn Sie mehr als eine dieser Optionen angeben möchten, trennen Sie die Elemente durch ein Komma.
Sie können beliebige Kombinationen von Suchmethoden mit Zielen, Spaltennamen und Ausdruck-IDs angeben.
Weitere Beispiele finden Sie unter Löschen der Suchoptimierung für bestimmte Spalten.
Nutzungshinweise¶
Änderungen an einer Ereignistabelle werden nicht automatisch an Ansichten weitergegeben, die für diese Ereignistabelle erstellt wurden.
Um eine Ereignistabelle zu ändern, müssen Sie eine Rolle verwenden, die über Eigentümerrechte für die Ereignistabelle verfügt.
Für das Hinzufügen von Clustering zu einer Ereignistabelle müssen Sie auch über USAGE- oder OWNERSHIP-Berechtigungen für das Schema und die Datenbank verfügen, die die Ereignistabelle enthalten.
Für Zeilenzugriffsrichtlinien:
Snowflake unterstützt das Hinzufügen und Löschen von Zeilenzugriffsrichtlinien mit einer einzigen SQL-Anweisung.
Wenn Sie z. B. eine bereits für eine Tabelle festgelegte Zeilenzugriffsrichtlinie durch eine andere Richtlinie ersetzen möchten, müssen Sie zuerst die Zeilenzugriffsrichtlinie löschen und dann die neue Zeilenzugriffsrichtlinie hinzufügen.
Für eine gegebene Ressource (d. h. Tabelle oder Ansicht) müssen Sie für ein
ADD
oderDROP
der Zeilenzugriffsrichtlinie entweder über die APPLY ROW ACCESS POLICY-Berechtigung für das Schema oder über die OWNERSHIP-Berechtigung für die Ressource und die APPLY-Berechtigung für die Ressource der Zeilenzugriffsrichtlinie verfügen.Eine Tabelle oder Ansicht kann nur durch jeweils eine einzige Zeilenzugriffsrichtlinie geschützt werden. Das Hinzufügen einer Richtlinie schlägt fehl, wenn sich der Richtlinientext auf eine Tabellen- oder Ansichtsspalte bezieht, die durch eine Zeilenzugriffsrichtlinie geschützt ist, oder auf eine Spalte, die durch eine Maskierungsrichtlinie geschützt ist.
In ähnlicher Weise schlägt das Hinzufügen einer Maskierungsrichtlinie zu einer Tabellenspalte fehl, wenn der Richtlinientext der Maskierungsrichtlinie auf eine Tabelle verweist, die durch eine Zeilenzugriffsrichtlinie oder eine andere Maskierungsrichtlinie geschützt ist.
Zeilenzugriffsrichtlinien können nicht auf systemspezifische Ansichten oder Tabellenfunktionen angewendet werden.
Ähnlich wie bei anderen DROP <Objekt>-Operationen gibt Snowflake einen Fehler zurück, wenn versucht wird, eine Zeilenzugriffsrichtlinie aus einer Ressource zu löschen, der keine Zeilenzugriffsrichtlinie hinzugefügt wurde.
Wenn ein Objekt sowohl eine Zeilenzugriffsrichtlinie als auch eine oder mehrere Maskierungsrichtlinien hat, wird die Zeilenzugriffsrichtlinie zuerst ausgewertet.
Wenn Sie einen Fremdschlüssel erstellen, müssen die Spalten in der
REFERENCES
-Klausel in der gleichen Reihenfolge aufgelistet werden, wie die Spalten für den Primärschlüssel aufgelistet wurden. Beispiel:create table parent ... constraint primary_key_1 primary key (c_1, c_2) ... create table child ... constraint foreign_key_1 foreign key (...) REFERENCES parent (c_1, c_2) ...
In beiden Fällen ist die Reihenfolge der Spalten
c_1, c_2
. Wäre die Reihenfolge der Spalten im Fremdschlüssel eine andere gewesen (z. B.c_2, c_1
), wäre der Versuch, den Fremdschlüssel zu erstellen, fehlgeschlagen.
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
ALTER TABLE … CHANGE_TRACKING = TRUE
Wenn eine Ereignistabelle geändert wird, um die Änderungsverfolgung zu aktivieren, wird die Ereignistabelle für die Dauer der Operation gesperrt. Sperren können bei einigen damit verbundenen DDL/DML-Operationen eine Latenz verursachen. Weitere Informationen dazu finden Sie unter Ressourcensperrung.
Beispiele¶
So benennen Sie die Ereignistabelle von t1
in a1
um:
CREATE OR REPLACE TABLE t1(a1 number); SHOW TABLES LIKE 't1'; ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+ created_on | name | database_name | schema_name | kind | comment | cluster_by | rows | bytes | owner | retention_time | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+ Tue, 17 Mar 2015 16:52:33 -0700 | T1 | TESTDB | MY_SCHEMA | TABLE | | | 0 | 0 | PUBLIC | 1 | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+ ALTER TABLE t1 RENAME TO tt1; SHOW TABLES LIKE 'tt1'; ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+ created_on | name | database_name | schema_name | kind | comment | cluster_by | rows | bytes | owner | retention_time | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+ Tue, 17 Mar 2015 16:52:33 -0700 | TT1 | TESTDB | MY_SCHEMA | TABLE | | | 0 | 0 | PUBLIC | 1 | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+
Ändern der Reihenfolge der Gruppierungsschlüssel einer Ereignistabelle:
CREATE OR REPLACE TABLE T1 (id NUMBER, date TIMESTAMP_NTZ, name STRING) CLUSTER BY (id, date); SHOW TABLES LIKE 'T1'; ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+ created_on | name | database_name | schema_name | kind | comment | cluster_by | rows | bytes | owner | retention_time | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+ Tue, 21 Jun 2016 15:42:12 -0700 | T1 | TESTDB | TESTSCHEMA | TABLE | | (ID,DATE) | 0 | 0 | ACCOUNTADMIN | 1 | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+ -- Change the order of the clustering key ALTER TABLE t1 CLUSTER BY (date, id); SHOW TABLES LIKE 'T1'; ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+ created_on | name | database_name | schema_name | kind | comment | cluster_by | rows | bytes | owner | retention_time | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+ Tue, 21 Jun 2016 15:42:12 -0700 | T1 | TESTDB | TESTSCHEMA | TABLE | | (DATE,ID) | 0 | 0 | ACCOUNTADMIN | 1 | ---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+
Das folgende Beispiel fügt eine Zeilenzugriffsrichtlinie zu einer Ereignistabelle unter Angabe einer einzelnen Spalte hinzu. Nach dem Einstellen der Richtlinie können Sie diese durch Überprüfen des Information Schema verifizieren.
ALTER TABLE t1 ADD ROW ACCESS POLICY rap_t1 ON (empl_id);
Das folgende Beispiel fügt eine Zeilenzugriffsrichtlinie unter Angabe von zwei Spalten einer einzelnen Ereignistabelle hinzu.
ALTER TABLE t1 ADD ROW ACCESS POLICY rap_test2 ON (cost, item);
Das folgende Beispiel entfernt eine Zeilenzugriffsrichtlinie aus einer Ereignistabelle. Überprüfen Sie, ob die Richtlinien gelöscht wurden, indem Sie das Information Schema abfragen.
ALTER TABLE t1 DROP ROW ACCESS POLICY rap_v1;
Das folgende Beispiel zeigt, wie Sie das Hinzufügen und Löschen von Zeilenzugriffsrichtlinien in einer einzigen SQL-Anweisung für eine Tabelle kombinieren. Überprüfen Sie die Ergebnisse, indem Sie das Information Schema überprüfen.
alter table t1 drop row access policy rap_t1_version_1, add row access policy rap_t1_version_2 on (empl_id);