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                             |
                                       }
Copy

Wobei:

clusteringAction ::=
  {
     CLUSTER BY ( <expr> [ , <expr> , ... ] )
   | { SUSPEND | RESUME } RECLUSTER
   | DROP CLUSTERING KEY
  }
Copy
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
  }
Copy
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> }
          [ , ... ]
     ]

  }
Copy

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 Format db_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 oder 1

  • Enterprise Edition:

    • 0 bis 90 für permanente Ereignistabellen

    • 0 oder 1 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> [, ...])
Copy

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 oder my_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(*)
    
    Copy

    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(*)
    
    Copy

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);
Copy

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);
Copy

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);
Copy

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 oder DROP 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) ...
    
    Copy

    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              |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+
Copy

Ä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              |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+
Copy

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);
Copy

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);
Copy

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;
Copy

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);
Copy