Cette rubrique décrit la portée de conversion prise en charge pour les instructions DDL CREATE TABLE lors de la migration des données d'une base de données MySQL vers un locataire MySQL d'OceanBase Database.
Syntaxe
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_options]
[partition_options]
|
Syntaxe |
Description |
|
|
Permet de créer une colonne, un index ou une contrainte. Pour plus d'informations, consultez les rubriques Créer une colonne et Créer un index ou une contrainte. |
|
|
Pour plus d'informations, voir la section table_options ci-dessous. |
|
|
Pour plus d'informations, consultez la rubrique Créer une partition. |
-
Lors de la création d'une table avec l'instruction CREATE TABLE, spécifiez les mots-clés
IF NOT EXISTSet l'optionLIKE. Exemple :CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE old_tbl_name) } -
Il est impossible de créer une table temporaire avec cette instruction. Le mot-clé
TEMPORARYest ignoré.RemarqueLa création de tables temporaires est possible dans les locataires MySQL d'OceanBase Database V3.2.3.
L'instruction
CREATE TABLE AS SELECTne permet pas de créer une table à partir du jeu de résultats d'une instruction SELECT. En effet, le résultat serait une chaîne vide dans ce scénario.
table_options
Spécifiez des commentaires au niveau de la table.
Spécifiez
CHARACTER SET.Les autres options de table ne sont pas analysées et sont ignorées.
L'extrait de code suivant détaille les options de table :
table_option: {
AUTOEXTEND_SIZE [=] value
| AUTO_INCREMENT [=] value
| AVG_ROW_LENGTH [=] value
| [DEFAULT] CHARACTER SET [=] charset_name
| CHECKSUM [=] {0 | 1}
| [DEFAULT] COLLATE [=] collation_name
| COMMENT [=] 'string'
| COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}
| CONNECTION [=] 'connect_string'
| {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'
| DELAY_KEY_WRITE [=] {0 | 1}
| ENCRYPTION [=] {'Y' | 'N'}
| ENGINE [=] engine_name
| ENGINE_ATTRIBUTE [=] 'string'
| INSERT_METHOD [=] { NO | FIRST | LAST }
| KEY_BLOCK_SIZE [=] value
| MAX_ROWS [=] value
| MIN_ROWS [=] value
| PACK_KEYS [=] {0 | 1 | DEFAULT}
| PASSWORD [=] 'string'
| ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT}
| SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
| STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}
| STATS_PERSISTENT [=] {DEFAULT | 0 | 1}
| STATS_SAMPLE_PAGES [=] value
| TABLESPACE tablespace_name [STORAGE {DISK | MEMORY}]
| UNION [=] (tbl_name[,tbl_name]...)
}
Limites
En raison des limites inhérentes aux locataires MySQL d'OceanBase Database, une erreur peut survenir lors de la conversion et de l'exécution des instructions DDL synchronisées dans un locataire MySQL d'OceanBase Database dans les scénarios suivants :
Les locataires MySQL d'OceanBase Database prennent en charge un nombre limité de jeux de caractères.
Évitez d'utiliser des jeux de caractères non pris en charge, tels que Latin-1. Si vous forcez l'utilisation d'un jeu de caractères non pris en charge pour un locataire MySQL d'OceanBase Database, ce jeu de caractères ne sera pas converti lors de la synchronisation DDL vers la base de données de destination et une erreur surviendra.