Commande CREATE … CLONE : Clonage de bases de données et de schémas contenant des tables hybrides¶
Attention
Ce changement de comportement est présent dans le bundle 2024_08.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
Étant donné que les tables hybrides ont une prise en charge limitée pour le clonage, notez le comportement suivant lorsque vous essayez de cloner une base de données ou un schéma qui contient des tables hybrides :
- Avant la modification:
En général, les commandes CREATE DATABASE … CLONE et CREATE SCHEMA … CLONE ignorent silencieusement les tables hybrides s’il en existe dans la base de données ou le schéma spécifié.
Les commandes CREATE DATABASE … CLONE ne clonent pas les tables hybrides si aucun paramètre Time Travel n’est spécifié dans la commande, ou si une valeur AT TIMESTAMP est spécifiée.
Par exemple, les commandes suivantes réussissent mais ignorent les tables hybrides :
CREATE SCHEMA dst CLONE src; CREATE DATABASE dst CLONE src BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e');
La commande suivante réussit et inclut les tables hybrides dans la base de données clonée :
CREATE DATABASE dst CLONE src;
- Après la modification:
Les commandes CREATE SCHEMA … CLONE renvoient une erreur si des tables hybrides existent dans le schéma spécifié. Par exemple, la commande suivante échoue :
CREATE SCHEMA dst CLONE src;
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.
L’erreur vous invite à exécuter la commande à l’aide du paramètre IGNORE HYBRID TABLES. Lorsque vous utilisez ce paramètre, la commande crée le schéma cloné, mais ignore toutes les tables hybrides. Par exemple :
CREATE SCHEMA dst CLONE src IGNORE HYBRID TABLES;
Le comportement des commandes CREATE DATABASE … CLONE qui ne spécifient pas de paramètres Time Travel ne change pas. Par exemple, la commande suivante réussit et inclut les tables hybrides dans la base de données clonée :
CREATE DATABASE dst CLONE src;
Les commandes CREATE DATABASE … CLONE qui utilisent Time Travel et précisent l’heure avec le paramètre STATEMENT renvoient une erreur si des tables hybrides existent dans la base de données spécifiée. Par exemple, la commande suivante échoue :
CREATE DATABASE dst CLONE src BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e');
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.
L’erreur vous invite à exécuter la commande à l’aide du paramètre IGNORE HYBRID TABLES. Lorsque vous utilisez ce paramètre, la commande crée la base de données clonée, mais ignore toutes les tables hybrides. Par exemple :
CREATE DATABASE dst CLONE src BEFORE (STATEMENT => '01b7676a-0002-d908-0000-a99500f6e00e') IGNORE HYBRID TABLES;
Les autres commandes CREATE DATABASE … CLONE qui spécifient des paramètres Time Travel et n’utilisent pas AT TIMESTAMP sur une base de données cible contenant des tables hybrides renvoient une erreur ou ignorent silencieusement les tables hybrides :
Si le bundle est activé (explicitement ou par défaut), ces commandes CREATE DATABASE … CLONE renvoient une erreur.
Si le bundle est explicitement désactivé, ces commandes CREATE DATABASE … CLONE sautent silencieusement les tables hybrides.
Pour plus d’informations, voir Cloner des bases de données contenant des tables hybrides.
Réf : 1792