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 ekspresiCHECKbaris.Saat mengeksekusi pernyataan
ALTER TABLE MODIFY/CHANGE COLUMN, Anda dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresiCHECKbaris.
Tenant MySQL OceanBase Database
Saat mengeksekusi pernyataan
ALTER TABLE ADD COLUMN, Anda tidak dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresiCHECKbaris.Saat mengeksekusi pernyataan
ALTER TABLE MODIFY/CHANGE COLUMN, Anda tidak dapat mengacu pada kolom lain (dari jenis apa pun) dalam ekspresiCHECKbaris.PentingEkspresi 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.
PentingJika 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.