.alter table
Perintah .alter table:
- Mengamankan data dalam kolom "dipertahankan"
- Menyusun ulang kolom tabel
- Menetapkan skema kolom,
docstring, dan folder baru ke tabel yang sudah ada, menimpa skema kolom,docstring, dan folder yang sudah ada - Harus berjalan dalam konteks database tertentu yang mencakup nama tabel
- Memerlukan izin Admin Tabel
Peringatan
Menggunakan perintah .alter dengan tidak benar dapat menyebabkan hilangnya data.
Tip
.alter memiliki rekanan, perintah tabel .alter-merge yang memiliki fungsionalitas serupa. Untuk informasi selengkapnya, lihat .alter-merge table
Sintaks
.altertableTableName (columnName:columnType, ...) [with([docstring=Documentation] [,folder=FolderName] )]
- Tabel akan memiliki kolom yang persis sama, dalam urutan yang sama, seperti yang ditentukan. Menentukan kolom tabel:
- Jika kolom yang ada tidak ditentukan dalam perintah, kolom tersebut akan dihilangkan dan data di dalamnya akan hilang, seperti dengan perintah
.drop column. - Saat Anda mengubah tabel, mengubah jenis kolom tidak didukung. Sebagai gantinya, gunakan perintah
.alter column.
Tip
Gunakan .show table [TableName] cslschema untuk mendapatkan skema kolom yang ada sebelum Anda mengubahnya.
Bagaimana perintah akan memengaruhi data?
- Data yang ada tidak diubah secara fisik oleh perintah. Data dalam kolom yang dihapus diabaikan. Data dalam kolom baru diasumsikan sebagai null.
- Bergantung pada bagaimana kluster dikonfigurasi, penyerapan data dapat mengubah skema kolom tabel, bahkan tanpa interaksi pengguna. Saat Anda membuat perubahan pada skema kolom tabel, pastikan penyerapan tidak akan menambahkan kolom yang diperlukan yang kemudian akan dihapus oleh perintah.
Peringatan
Proses penyerapan data ke dalam tabel yang mengubah skema kolom tabel, dan yang terjadi secara paralel dengan perintah .alter table, mungkin dilakukan secara agnostik terhadap urutan kolom tabel. Ada juga risiko bahwa data akan diserap ke dalam kolom yang salah. Cegah masalah ini dengan menghentikan penyerapan selama perintah, atau dengan memastikan bahwa operasi penyerapan tersebut selalu menggunakan objek pemetaan.
Contoh
.alter table MyTable (ColumnX:string, ColumnY:int)
.alter table MyTable (ColumnX:string, ColumnY:int) with (docstring = "Some documentation", folder = "Folder1")