All Products
Search
Document Center

ApsaraDB for OceanBase (Deprecated):Ketidaksesuaian ALTER TABLE

Last Updated:Jul 02, 2025

Topik ini menjelaskan skenario di mana operasi DDL ALTER TABLE yang dilakukan di database MySQL dapat dikonversi oleh komponen sinkronisasi DDL dari layanan transmisi data tetapi tidak dapat dilakukan di tenant MySQL OceanBase Database selama migrasi data dari database MySQL ke tenant MySQL OceanBase Database.

Mengacu pada kolom lain dalam ekspresi CHECK baris

  • Database MySQL

    • Saat mengeksekusi pernyataan ALTER TABLE ADD COLUMN, Anda tidak dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresi CHECK baris.

    • Saat mengeksekusi pernyataan ALTER TABLE MODIFY/CHANGE COLUMN, Anda dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresi CHECK baris.

  • Tenant MySQL OceanBase Database

    • Saat mengeksekusi pernyataan ALTER TABLE ADD COLUMN, Anda tidak dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresi CHECK baris.

    • Saat mengeksekusi pernyataan ALTER TABLE MODIFY/CHANGE COLUMN, Anda tidak dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresi CHECK baris.

      Penting

      Ekspresi CHECK lainnya mungkin tidak didukung karena batasan tenant MySQL OceanBase Database.

Mengubah tipe kolom

  • Database MySQL dan tenant MySQL OceanBase Database memiliki batasan berbeda terkait tipe kolom yang dibatasi setelah perubahan. Untuk informasi lebih lanjut, lihat Mengubah tipe kolom yang dibatasi.

  • Database MySQL dan tenant MySQL OceanBase Database memiliki batasan berbeda terkait tipe kolom yang tidak dibatasi. Untuk informasi lebih lanjut, lihat Mengubah tipe kolom yang tidak dibatasi.

Mengubah panjang kolom

  • Database MySQL dan tenant MySQL OceanBase Database memiliki batasan berbeda terkait panjang kolom yang dibatasi setelah perubahan. Untuk informasi lebih lanjut, lihat Mengubah panjang kolom yang dibatasi.

  • Database MySQL dan tenant MySQL OceanBase Database memiliki batasan berbeda terkait panjang kolom yang tidak dibatasi setelah perubahan. Untuk informasi lebih lanjut, lihat Mengubah panjang kolom yang tidak dibatasi.

Mengubah kolom NULLABLE menjadi kolom NOT NULL

  • Database MySQL

    Jika kolom NULLABLE tidak dibatasi, Anda dapat mengeksekusi pernyataan CHANGE/MODIFY COLUMN untuk mengubah kolom NULLABLE menjadi kolom NOT NULL. Perubahan berikut juga didukung: NOT NULL -> NULLABLE, NULLABLE -> NULLABLE, dan NOT NULL -> NOT NULL.

    Penting

    Jika nilai NULL ada di kolom NULLABLE, Anda tidak dapat mengubah kolom NULLABLE menjadi kolom NOT NULL.

  • Tenant MySQL OceanBase Database

    • Jika kolom NULLABLE tidak dibatasi, Anda tidak dapat mengubah kolom NULLABLE menjadi kolom NOT NULL dengan mengeksekusi pernyataan CHANGE/MODIFY COLUMN.

    • Jika kolom NULLABLE tidak dibatasi, perubahan berikut didukung: NOT NULL -> NULLABLE, NULLABLE -> NULLABLE, dan NOT NULL -> NOT NULL.

Mengubah set karakter atau collation

  • Database MySQL: didukung.

  • Tenant MySQL OceanBase Database: tidak didukung.

Menghapus kolom yang dibatasi

Database MySQL dan tenant MySQL OceanBase Database memiliki batasan berbeda terkait penghapusan kolom yang dibatasi. Untuk informasi lebih lanjut, lihat Menghapus kolom yang dibatasi.

Pernyataan CHANGE/MODIFY COLUMN NOT NULL dan pernyataan COMMENT tidak dapat ada secara bersamaan

Contoh kode:

 ALTER TABLE T MODIFY C INT NOT NULL, COMMENT 'INT COLUMN';
  • Database MySQL

    • Jika kolom tidak dibatasi, Anda dapat mengubah kolom menjadi kolom NOT NULL atau NULLABLE dengan mengeksekusi pernyataan CHANGE/MODIFY COLUMN dengan klausa COMMENT.

    • Jika kolom memiliki batasan PRIMARY KEY, UNIQUE KEY, KEY, atau FULLTEXT, Anda dapat mengubah kolom menjadi kolom NOT NULL dengan mengeksekusi pernyataan CHANGE/MODIFY COLUMN dengan klausa COMMENT. Namun, jika Anda mengubah kolom menjadi kolom NULLABLE dalam kasus ini, kesalahan akan dikembalikan.

  • Tenant MySQL OceanBase Database

    • Tanpa memandang apakah kolom NULLABLE atau NOT NULL dibatasi atau tidak, Anda tidak dapat mengubahnya menjadi kolom NOT NULL dengan mengeksekusi pernyataan CHANGE/MODIFY COLUMN dengan klausa COMMENT.

    • Jika kolom NULLABLE atau NOT NULL tidak dibatasi, Anda dapat mengubahnya menjadi kolom NULLABLE.

    • Jika kolom NOT NULL memiliki batasan PRIMARY KEY, UNIQUE KEY, KEY, atau FULLTEXT, dan Anda ingin mengubah kolom menjadi kolom NULLABLE dengan mengeksekusi pernyataan CHANGE/MODIFY COLUMN dengan klausa COMMENT, tidak ada kesalahan yang dikembalikan, tetapi perubahan tersebut tidak berlaku.