Topik ini menjelaskan ruang lingkup konversi yang didukung untuk operasi DDL ALTER TABLE pada kolom selama migrasi data dari database MySQL ke tenant MySQL OceanBase Database.
Sintaksis
ALTER TABLE tbl_name
[alter_option [, alter_option] ...]
alter_option: {
ADD [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
| ADD [COLUMN] (col_name column_definition,...)
| ALTER [COLUMN] col_name {
SET DEFAULT {literal | (expr)}
| SET {VISIBLE | INVISIBLE}
| DROP DEFAULT
}
| CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
| ORDER BY col_name [, col_name] ...
| RENAME COLUMN old_col_name TO new_col_name
}
Operasi DDL yang Didukung
Gunakan ADD COLUMN untuk menambahkan satu atau lebih kolom. Untuk informasi lebih lanjut tentang cara mendefinisikan kolom, lihat Buat Kolom. Anda juga dapat menentukan kata kunci FIRST | AFTER.
Gunakan
ALTER COLUMN SET DEFAULTuntuk memodifikasi nilai default kolom.Gunakan
ALTER COLUMN DROP DEFAULTuntuk menghapus nilai default kolom.Gunakan
CHANGE COLUMNatauMODIFY COLUMNuntuk mengubah atau memodifikasi kolom.Gunakan
DROP COLUMNuntuk menghapus kolom.
Operasi yang Tidak Didukung
Jika pernyataan DDL yang akan disinkronkan berisi definisi berikut yang tidak didukung, konversi akan gagal dan keluarannya adalah string kosong.
Gunakan
ALTER COLUMN SET VISIBLE | INVISIBLEuntuk memodifikasi visibilitas kolom.Gunakan
ORDER BY col_name.Gunakan
RENAME COLUMNuntuk mengganti nama kolom.ALTER TABLE t RENAME COLUMN d TO g;
Klausa dan Opsi yang Diabaikan
Klausa dan opsi berikut akan diabaikan dan tidak akan diselesaikan atau dikonversi ketika ditentukan dalam pernyataan DDL yang disinkronkan.
Atribut FIRST | AFTER (Jika pernyataan DDL ALTER TABLE berisi klausa
MODIFY COLUMNatauCHANGE COLUMN, atribut ini akan diabaikan.)
Batasan
Karena batasan tenant MySQL OceanBase Database, kesalahan mungkin terjadi ketika pernyataan DDL yang disinkronkan dikonversi dan dieksekusi di tenant MySQL OceanBase Database dalam skenario berikut.
Menggunakan klausa
MODIFY COLUMNatauCHANGE COLUMNuntuk memodifikasi tipe bidang mungkin gagal karena beberapa tipe bidang tidak didukung di tenant MySQL OceanBase Database.Menggunakan pernyataan
MODIFY COLUMNatauCHANGE COLUMNuntuk memodifikasi panjang bidang mungkin gagal.Menggunakan pernyataan
ALTER COLUMN SET DEFAULTuntuk menetapkan nilai default mungkin gagal karena beberapa fungsi atau ekspresi tidak didukung di tenant MySQL OceanBase Database.Anda tidak dapat menghapus kolom yang digunakan sebagai kunci utama, kunci unik, indeks normal, atau kolom dengan kendala FOREIGN KEY.