All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Membuat tabel

Last Updated:Jul 02, 2025

Topik ini menjelaskan ruang lingkup konversi yang didukung dari operasi DDL CREATE TABLE selama migrasi data dari database MySQL ke tenant MySQL di OceanBase Database.

Sintaksis

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)   
[table_options]
[partition_options]

Sintaksis

Deskripsi

create_definition

Anda dapat membuat kolom, indeks, atau batasan. Untuk informasi lebih lanjut, lihat Membuat kolom dan Membuat indeks atau batasan.

table_options

Untuk informasi lebih lanjut, lihat table_options setelah bagian ini.

partition_options

Untuk informasi lebih lanjut, lihat Membuat partisi.

  • Ketika menggunakan pernyataan CREATE TABLE untuk membuat tabel, Anda dapat menentukan kata kunci IF NOT EXISTS dan opsi LIKE. Contoh:

    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }
  • Pernyataan ini tidak mendukung pembuatan tabel sementara. Kata kunci TEMPORARY akan diabaikan.

    Catatan

    Anda dapat membuat tabel sementara di tenant MySQL OceanBase Database V3.2.3.

  • Pernyataan CREATE TABLE AS SELECT tidak dapat digunakan untuk membuat tabel berdasarkan set hasil dari pernyataan SELECT karena keluarannya akan menjadi string kosong dalam skenario ini.

table_options

  • Anda dapat menentukan komentar tingkat tabel.

  • Anda dapat menentukan CHARACTER SET.

  • Opsi tabel lainnya tidak dapat diurai dan akan diabaikan.

Contoh kode berikut menjelaskan opsi tabel secara rinci:

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]...)
}

Batasan

Penting

Karena batasan tenant MySQL di OceanBase Database, kesalahan mungkin terjadi ketika pernyataan DDL yang disinkronkan dikonversi dan dieksekusi di tenant MySQL OceanBase Database dalam skenario berikut:

  • Tenant MySQL di OceanBase Database mendukung sejumlah karakter set yang terbatas.

  • Hindari penggunaan karakter set yang tidak didukung, seperti Latin-1. Jika Anda secara paksa menentukan karakter set yang tidak didukung untuk tenant MySQL di OceanBase Database, karakter set tersebut tidak akan dikonversi selama sinkronisasi DDL ke database tujuan dan kesalahan akan dikembalikan.