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 |
| Anda dapat membuat kolom, indeks, atau batasan. Untuk informasi lebih lanjut, lihat Membuat kolom dan Membuat indeks atau batasan. |
| Untuk informasi lebih lanjut, lihat table_options setelah bagian ini. |
| Untuk informasi lebih lanjut, lihat Membuat partisi. |
Ketika menggunakan pernyataan CREATE TABLE untuk membuat tabel, Anda dapat menentukan kata kunci
IF NOT EXISTSdan opsiLIKE. 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
TEMPORARYakan diabaikan.CatatanAnda dapat membuat tabel sementara di tenant MySQL OceanBase Database V3.2.3.
Pernyataan
CREATE TABLE AS SELECTtidak 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
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.