Tous les produits
Search
Centre de documentation

ApsaraDB for OceanBase (Deprecated):Créer une table

Dernière mise à jour :Aug 09, 2026

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

create_definition

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.

table_options

Pour plus d'informations, voir la section table_options ci-dessous.

partition_options

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 EXISTS et l'option LIKE. 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é TEMPORARY est ignoré.

    Remarque

    La création de tables temporaires est possible dans les locataires MySQL d'OceanBase Database V3.2.3.

  • L'instruction CREATE TABLE AS SELECT ne 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

Important

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.