All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Operasi pada kolom

Last Updated:Jul 02, 2025

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 DEFAULT untuk memodifikasi nilai default kolom.

  • Gunakan ALTER COLUMN DROP DEFAULT untuk menghapus nilai default kolom.

  • Gunakan CHANGE COLUMN atau MODIFY COLUMN untuk mengubah atau memodifikasi kolom.

  • Gunakan DROP COLUMN untuk menghapus kolom.

Operasi yang Tidak Didukung

Penting

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 | INVISIBLE untuk memodifikasi visibilitas kolom.

  • Gunakan ORDER BY col_name.

  • Gunakan RENAME COLUMN untuk mengganti nama kolom.

    ALTER TABLE t RENAME COLUMN d TO g;

Klausa dan Opsi yang Diabaikan

Penting

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 COLUMN atau CHANGE COLUMN, atribut ini akan diabaikan.)

Batasan

Penting

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 COLUMN atau CHANGE COLUMN untuk memodifikasi tipe bidang mungkin gagal karena beberapa tipe bidang tidak didukung di tenant MySQL OceanBase Database.

  • Menggunakan pernyataan MODIFY COLUMN atau CHANGE COLUMN untuk memodifikasi panjang bidang mungkin gagal.

  • Menggunakan pernyataan ALTER COLUMN SET DEFAULT untuk 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.