CREATE … CLONE-Befehl: Klonen von Datenbanken und Schemas, die Hybridtabellen enthalten

Achtung

Diese Verhaltensweisen sind im Bundle 2024_08 enthalten.

Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.

In Anbetracht der Tatsache, dass Hybridtabellen nur eine begrenzte Unterstützung für Klonen haben, beachten Sie das folgende Verhalten, wenn Sie versuchen, eine Datenbank oder ein Schema zu klonen, das Hybridtabellen enthält:

Vor der Änderung:

Im Allgemeinen überspringen die Befehle CREATE DATABASE … CLONE und CREATE SCHEMA … CLONE Hybridtabellen, wenn es in der angegebenen Datenbank oder dem angegebenen Schema Hybridtabellen gibt.

CREATE DATABASE … CLONE-Befehle klonen Hybridtabellen, wenn keine Time Travel-Parameter im Befehl angegeben sind oder wenn ein AT TIMESTAMP-Wert angegeben ist.

Die folgenden Befehle sind beispielsweise erfolgreich, lassen aber Hybridtabellen aus:

CREATE SCHEMA dst CLONE src;
CREATE DATABASE dst CLONE src
  BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e');
Copy

Der folgende Befehl ist erfolgreich und nimmt Hybridtabellen in die geklonte Datenbank auf:

CREATE DATABASE dst CLONE src;
Copy
Nach der Änderung:

CREATE SCHEMA … CLONE-Befehle geben einen Fehler zurück, wenn Hybridtabellen im angegebenen Schema existieren. Zum Beispiel schlägt der folgende Befehl fehl:

CREATE SCHEMA dst CLONE src;
Copy
392105 (0A000): SQL execution error: Cloning a SCHEMA which contains a HYBRID TABLE is unsupported. To perform the clone while skipping HYBRID TABLES, append the `IGNORE HYBRID TABLES` syntax to your DDL.

Der Fehler fordert Sie auf, den Befehl mit dem Parameter IGNORE HYBRID TABLES auszuführen. Wenn Sie diesen Parameter verwenden, erstellt der Befehl das geklonte Schema, überspringt jedoch alle Hybridtabellen. Beispiel:

CREATE SCHEMA dst CLONE src IGNORE HYBRID TABLES;
Copy

Das Verhalten von CREATE DATABASE … CLONE-Befehlen, die keine Time Travel-Parameter angeben ändert sich nicht. Der folgende Befehl ist zum Beispiel erfolgreich und schließt Hybridtabellen in die geklonte Datenbank ein:

CREATE DATABASE dst CLONE src;
Copy

CREATE DATABASE … CLONE-Befehle, die Time Travel verwenden und die Zeit mit dem Parameter STATEMENT angeben, geben einen Fehler zurück, wenn in der angegebenen Datenbank Hybridtabellen existieren. Zum Beispiel schlägt der folgende Befehl fehl:

CREATE DATABASE dst CLONE src
  BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e');
Copy
392106 (0A000): SQL execution error: Time Travel cloning a DATABASE which contains a HYBRID TABLE, when specifying the time via a `STATEMENT` is unsupported. To perform the clone while skipping HYBRID TABLES, append the `IGNORE HYBRID TABLES` syntax to your DDL.

Der Fehler fordert Sie auf, den Befehl mit dem Parameter IGNORE HYBRID TABLES auszuführen. Wenn Sie diesen Parameter verwenden, erstellt der Befehl die geklonte Datenbank, überspringt jedoch alle Hybridtabellen. Beispiel:

CREATE DATABASE dst CLONE src
  BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e')
  IGNORE HYBRID TABLES;
Copy

Andere CREATE DATABASE … CLONE-Befehle, die Time Travel-Parameter angeben und AT TIMESTAMP auf einer Zieldatenbank, die Hybridtabellen enthält, nicht verwenden, geben entweder einen Fehler zurück oder überspringen die Hybridtabellen stillschweigend:

  • Wenn das Bundle aktiviert ist (entweder explizit oder standardmäßig), geben diese CREATE DATABASE … CLONE-Befehle einen Fehler zurück.

  • Wenn das Bundle explizit deaktiviert ist, überspringen diese CREATE DATABASE … CLONE-Befehle stillschweigend Hybridtabellen.

Weitere Informationen dazu finden Sie unter Klonen von Datenbanken, die Hybridtabellen enthalten.

Ref.: 1792