AnalyticDB for MySQL mendukung pernyataan ALTER TABLE untuk mengubah skema tabel eksternal. Anda dapat mengubah struktur tabel, mengganti nama kolom, mengubah tipe data kolom, serta menambahkan atau menghapus partisi dari tabel eksternal. Topik ini menjelaskan cara menggunakan pernyataan ALTER TABLE untuk mengubah skema tabel eksternal.
Topik ini hanya berlaku untuk tabel eksternal. Untuk informasi lebih lanjut tentang sintaks ALTER TABLE pada tabel AnalyticDB for MySQL, lihat ALTER TABLE.
Prasyarat
Kluster AnalyticDB for MySQL Enterprise Edition, Basic Edition, atau Data Lakehouse Edition telah dibuat.
Kolom
Hanya kluster AnalyticDB for MySQL versi V3.2.1.0 atau yang lebih baru yang mendukung sintaks berikut.
Untuk melihat dan memperbarui versi minor kluster AnalyticDB for MySQL, masuk ke konsol AnalyticDB for MySQL dan buka bagian Configuration Information pada halaman Cluster Information.
Tambahkan kolom
Sintaks
ALTER TABLE db_name.table_name ADD [COLUMN]
{column_name column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'komentar']
| (column column_type [DEFAULT {constant|CURRENT_TIMESTAMP}|AUTO_INCREMENT] [NULL|NOT NULL] [COMMENT 'komentar'],...)}Catatan penggunaan
Anda tidak dapat menambahkan kolom kunci utama.
Contoh
Tambahkan kolom bertipe VARCHAR bernama
provinceke tabelosstest1.ALTER TABLE osstest1 ADD COLUMN province VARCHAR COMMENT 'Provinsi';Tambahkan dua kolom ke tabel
osstest1: kolom bertipe BOOLEAN bernamavipdan kolom bertipe VARCHAR bernamatags.ALTER TABLE osstest1 ADD COLUMN (vip BOOLEAN COMMENT 'VIP',tags VARCHAR DEFAULT 'None' COMMENT 'Tags');
Hapus kolom
Sintaks
ALTER TABLE db_name.table_name DROP [COLUMN] column_nameCatatan penggunaan
Anda tidak dapat menghapus kolom kunci utama.
Contoh
Hapus kolom province dari tabel osstest1.
ALTER TABLE osstest1 DROP COLUMN province;Ganti nama kolom
Sintaks
ALTER TABLE table_name RENAME COLUMN column_name to new_column_nameContoh
Ganti nama kolom city_name di tabel osstest1 menjadi city.
ALTER TABLE osstest1 RENAME COLUMN city_name to city;Ganti tipe data kolom
Sintaks
ALTER TABLE table_name MODIFY [COLUMN] column_name new_column_typeContoh
Ganti tipe data kolom age di tabel osstest1 dari INT menjadi BIGINT.
ALTER TABLE osstest1 MODIFY COLUMN age BIGINT;Ganti nilai default kolom
Sintaks
ALTER TABLE table_name MODIFY [COLUMN] column_name column_type DEFAULT constant|CURRENT_TIMESTAMPContoh
Tetapkan nilai default kolom sex di tabel osstest1 menjadi 0.
ALTER TABLE osstest1 MODIFY COLUMN sex INT DEFAULT 0;Ganti komentar kolom
Sintaks
ALTER TABLE table_name MODIFY [COLUMN] column_name column_type COMMENT 'new_comment'Contoh
Ganti komentar kolom region di tabel osstest1 menjadi region.
ALTER TABLE osstest1 MODIFY COLUMN region VARCHAR COMMENT 'region';Partisi
Sintaks terkait partisi hanya berlaku untuk tabel eksternal berpartisi Object Storage Service (OSS).
Hanya kluster AnalyticDB for MySQL versi V3.1.8.0 atau yang lebih baru yang mendukung sintaks berikut.
Untuk melihat dan memperbarui versi minor kluster AnalyticDB for MySQL, masuk ke konsol AnalyticDB for MySQL dan buka bagian Configuration Information pada halaman Cluster Information.
Gunakan pernyataan ALTER TABLE ADD PARTITION untuk menambahkan partisi atau partisi multi-level secara manual. Untuk informasi tentang cara memungkinkan AnalyticDB for MySQL mengidentifikasi jalur OSS dan menambahkan partisi, lihat MSCK REPAIR TABLE.
Tambahkan partisi
Sintaks
ALTER TABLE table_name ADD PARTITION (partition_key=value[,...]) LOCATION 'lokasi';Parameter
Parameter | Deskripsi |
| Nama tabel eksternal. |
| Partisi yang ingin Anda tambahkan. Untuk menambahkan partisi multi-level, tentukan beberapa ekspresi |
| Jalur OSS partisi. Sebagai contoh, jalur OSS sebuah objek adalah oss://testBucketName/testfolder/p1=20230613/data.csv dan partisi yang ingin ditambahkan adalah p1='20230613'. Dalam kasus ini, atur parameter menjadi |
Contoh
Tambahkan partisi.
ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613') LOCATION 'oss://testBucketName/testfolder/p1=20230613/';Tambahkan partisi multi-level.
ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613',p2='hangzhou') LOCATION 'oss://testBucketName/testfolder/p1=20230613/p2=hangzhou';
Hapus partisi
Sintaks
ALTER TABLE table_name DROP PARTITION (partition_key=value[,...]);Parameter
Parameter | Deskripsi |
| Nama tabel eksternal. |
| Partisi yang ingin Anda hapus. Untuk menghapus partisi multi-level, tentukan beberapa ekspresi |
Contoh
Hapus partisi.
ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613');Hapus partisi multi-level.
ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613',p2='hangzhou');