Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Menambah, memodifikasi, atau menghapus kolom dalam sebuah tabel, atau bidang dalam kolom pada tabel Delta Lake.
Izin yang diperlukan
Jika Anda menggunakan Katalog Unity, Anda harus memiliki izin MODIFY untuk:
ALTER COLUMNADD COLUMNDROP COLUMN
Semua operasi lainnya memerlukan kepemilikan atas tabel.
Sintaks
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
Tambahkan klausa COLUMN
Klausul ini tidak didukung untuk sumber data JDBC.
Menambahkan satu atau beberapa kolom ke tabel, atau bidang ke kolom yang ada di tabel Delta Lake.
Catatan
Saat Anda menambahkan kolom ke tabel Delta yang sudah ada, Anda tidak dapat menentukan DEFAULT nilai. Semua kolom yang ditambahkan ke tabel Delta diperlakukan sebagai NULL untuk baris yang sudah ada. Setelah menambahkan kolom, Anda dapat secara opsional menentukan nilai default untuk kolom, tetapi ini hanya diterapkan untuk baris baru yang disisipkan ke dalam tabel. Gunakan sintaks berikut:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_expression
Sintaks
{ ADD [ COLUMN | COLUMNS ]
( { { column_identifier | field_name } data_type
[ COLLATE collation_name ]
[ DEFAULT clause ]
[ COMMENT comment ]
[ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parameter-parameternya
-
Nama kolom yang akan ditambahkan. Nama harus unik dalam tabel.
Kolom atau bidang akan ditambahkan di bagian akhir, kecuali jika
FIRSTatauAFTER nameditentukan. -
Nama lengkap bidang yang memenuhi syarat untuk ditambahkan ke kolom yang ada. Semua komponen jalur ke bidang berlapis harus ada dan nama bidang itu sendiri harus bersifat unik.
Untuk menambahkan bidang ke struktur yang ditumpuk di atau
ARRAYMAPjenis, gunakan nama khusus berikut:-
ELEMENTuntuk menavigasi keARRAYelemen. -
KEYuntuk menavigasi keMAPkunci. -
VALUEuntuk menavigasi keMAPnilai.
Misalnya:
phonenumbers.element.countrycodemenambahkan bidangcountrycodeke setiap elemenphonenumbersarray. -
DEFAULT default_expressionBerlaku untuk:
Databricks SQL
Databricks Runtime 11.3 LTS ke atasMenentukan nilai
DEFAULTuntuk kolom yang digunakan padaINSERTdanMERGE ... INSERTsaat kolom tidak ditentukan. Setiap literalSTRINGdan fungsiSTRINGdalam ekspresi default akan menggunakan kolasiUTF8_BINARY.Jika tidak ada default yang ditentukan,
DEFAULT NULLdiasumsikan untuk kolom yang dapat bernilai null.default_expressiondapat terdiri dari fungsi atau operator SQL literal dan bawaan kecuali:- Fungsi agregat
- Fungsi jendela analitik
- Fungsi jendela peringkat
- Fungsi penghasil nilai tabel
default_expressiontidak boleh berisi subkueri apa pun.DEFAULTdidukung untuk sumberCSV,JSON,PARQUET, danORC.-
Menentukan jenis data kolom atau bidang. Tidak semua tipe data yang didukung oleh Azure Databricks didukung oleh semua sumber data.
COLLATEcollation_nameUntuk
data_typeSTRINGsecara opsional menentukan pengurutan yang akan digunakan dengan kolom atau bidang. Jika tidak ditentukan, pengurutanUTF8_BINARYdigunakan.COMMENT commentLiteral opsional
STRINGyang menjelaskan kolom atau bidang yang ditambahkan.Jika Anda ingin menambahkan komentar yang dihasilkan AI untuk kolom tabel atau tabel yang dikelola oleh Katalog Unity, lihat Menambahkan komentar yang dihasilkan AI ke objek Katalog Unity.
FIRSTJika ditentukan, kolom akan ditambahkan sebagai kolom pertama dari tabel, atau kolom akan ditambahkan sebagai kolom pertama dalam struktur yang berisi.
AFTERpengidentifikasiJika ditentukan, kolom atau bidang akan langsung ditambahkan setelah bidang atau kolom
identifier.-
Berlaku untuk:
Databricks SQL
Databricks Runtime 12.2 LTS ke atas
Unity Catalog sajaPenting
Fitur ini ada di Pratinjau Publik.
Menambahkan fungsi masker kolom untuk menganonimkan data sensitif. Semua kueri berikutnya dari kolom tersebut akan menerima hasil evaluasi fungsi tersebut di atas kolom sebagai pengganti nilai asli kolom. Ini dapat berguna untuk tujuan kontrol akses terperinci di mana fungsi dapat memeriksa identitas atau keanggotaan grup pengguna yang memanggil untuk menentukan apakah akan menyunting nilai tersebut.
Klausa ALTER COLUMN
Berlaku untuk:
Databricks SQL
Databricks Runtime
Mengubah properti atau lokasi kolom.
Sintaks
{ ALTER | CHANGE } [ COLUMN ]
{ { column_identifier | field_name }
{ COMMENT comment |
{ FIRST | AFTER column_identifier } |
{ SET | DROP } NOT NULL |
TYPE data_type |
SET DEFAULT clause |
DROP DEFAULT |
SYNC IDENTITY }
[, ... ]
Sebelum Databricks Runtime 16.3, klausa tidak mendukung perubahan beberapa kolom dalam satu klausa.
{ ALTER | CHANGE } [ COLUMN ]
{ column_identifier | field_name }
{ SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause }
Parameter-parameternya
-
Nama kolom yang akan diubah.
Jika pengidentifikasi kolom dirujuk lebih dari sekali, Azure Databricks akan memunculkan NOT_SUPPORTED_CHANGE_SAME_COLUMN.
-
Nama lengkap bidang yang akan diubah. Semua komponen jalur ke bidang bersarang harus ada.
Azure Databricks akan memunculkan NOT_SUPPORTED_CHANGE_SAME_COLUMN jika nama bidang dirujuk lebih dari sekali.
COMMENT commentMengubah deskripsi kolom
column_name.commentharus berupa nilai literalSTRING.FIRSTatauAFTERpengidentifikasiMemindahkan kolom dari posisinya saat ini ke depan (
FIRST) atau langsungAFTERsetelahidentifier. Klausul ini hanya didukung jikatable_nameberupa tabel Delta.TYPEdata_typeBerlaku untuk:
Databricks SQL
Databricks Runtime 15.2 ke atasMengubah tipe
column_namedata kolom.Klausul ini hanya didukung jika
table_nameberupa tabel Delta.Perubahan jenis berikut ini didukung untuk semua tabel Delta:
- Meningkatkan ukuran
VARCHARkolom, misalnya, dariVARCHAR(5)keVARCHAR(10) - Mengubah jenis
CHARkolom menjadiVARCHAR, misalnya, dariCHAR(5)keVARCHAR(5) - Mengubah jenis
CHARkolom atauVARCHARmenjadiSTRING, misalnya, dariVARCHAR(10)keSTRING.
Perubahan jenis berikut didukung untuk tabel Delta dengan
delta.enableTypeWideningdiatur ketrue:Penting
Fitur ini ada dalam Pratinjau Umum di Databricks Runtime 15.2 dan lebih tinggi.
Jenis sumber Mendukung jenis yang lebih luas BYTESHORT,INTBIGINT,DECIMAL,DOUBLESHORTINT,BIGINT,DECIMAL,DOUBLEINTBIGINT, ,DECIMALDOUBLEBIGINTDECIMAL,DOUBLEFLOATDOUBLEDECIMALDECIMALdengan presisi dan skala yang lebih besarDATETIMESTAMP_NTZUntuk informasi lebih rinci tentang pelebaran jenis, lihat Pelebaran Jenis.
- Meningkatkan ukuran
SET NOT NULLatauDROP NOT NULLMengubah domain nilai kolom yang valid untuk mengecualikan null
SET NOT NULL, atau menyertakan nullDROP NOT NULL. Opsi ini hanya didukung untuk tabel Delta Lake. Delta Lakes akan memastikan batasan tersebut berlaku untuk semua data yang ada dan yang baru.SYNC IDENTITYBerlaku untuk:
Databricks SQL
Databricks Runtime 10.4 LTS ke atasSinkronkan metadata kolom identitas dengan data aktual. Saat Anda menulis nilai Anda sendiri ke kolom identitas, nilai tersebut mungkin tidak sesuai dengan metadata. Opsi ini mengevaluasi status dan memperbarui metadata agar konsisten dengan data aktual. Setelah perintah ini, nilai identitas yang ditetapkan berikutnya secara otomatis akan dimulai dari
start + (n + 1) * step, di mananadalah nilai terkecil yang memenuhistart + n * step >= max()(untuk langkah positif).Opsi ini hanya didukung untuk kolom identitas pada tabel Delta Lake.
DROP DEFAULTBerlaku untuk:
Databricks SQL
Databricks Runtime 11.3 LTS ke atasMenghapus ekspresi default dari kolom. Untuk kolom yang dapat diubah ke null, ini setara dengan
SET DEFAULT NULL. Untuk kolom yang ditentukan denganNOT NULL, Anda perlu memberikan nilai pada setiap operasiINSERTdi masa mendatangSET DEFAULT default_expressionBerlaku untuk:
Databricks SQL
Databricks Runtime 11.3 LTS ke atasMenentukan nilai
DEFAULTuntuk kolom yang digunakan padaINSERTdanMERGE ... INSERTsaat kolom tidak ditentukan.Jika tidak ada default yang ditentukan,
DEFAULT NULLdiasumsikan untuk kolom yang dapat bernilai null.default_expressiondapat terdiri dari fungsi atau operator SQL literal dan bawaan kecuali:- Fungsi agregat
- Fungsi jendela analitik
- Fungsi jendela peringkat
- Fungsi penghasil nilai tabel
default_expressiontidak boleh berisi subkueri.DEFAULTdidukung untuk sumberCSV,JSON,ORC, danPARQUET.Saat Anda menentukan default untuk kolom yang baru ditambahkan, default berlaku untuk semua baris yang sudah ada sebelumnya. Jika default menyertakan fungsi non-deterministik seperti
randataucurrent_timestamp, nilai dihitung sekali saatALTER TABLEdijalankan, dan diterapkan sebagai konstanta ke baris yang sudah ada sebelumnya. Untuk baris yang baru disisipkan, ekspresi default berjalan sekali per baris.Saat Anda mengatur default menggunakan
ALTER COLUMN, baris yang ada tidak terpengaruh oleh perubahan tersebut.SETKlausa MASKBerlaku untuk:
Databricks SQL
Databricks Runtime 12.2 LTS ke atas
Unity Catalog sajaPenting
Fitur ini ada di Pratinjau Publik.
Menambahkan fungsi masker kolom untuk menganonimkan data sensitif. Semua kueri berikutnya dari kolom tersebut akan menerima hasil evaluasi fungsi tersebut di atas kolom sebagai pengganti nilai asli kolom. Ini dapat berguna untuk tujuan kontrol akses terperinci di mana fungsi dapat memeriksa identitas atau keanggotaan grup pengguna yang memanggil untuk menentukan apakah akan menyunting nilai tersebut.
DROP MASKBerlaku untuk:
hanya untuk Katalog UnityPenting
Fitur ini ada di Pratinjau Publik.
Menghapus masker kolom untuk kolom ini, jika ada. Kueri di masa mendatang dari kolom ini akan menerima nilai asli kolom.
SET TAGS ( { tag_name = tag_value } [, ...] )Berlaku untuk:
Databricks SQL
Databricks Runtime 13.3 LTS ke atasTerapkan tag ke kolom. Anda harus memiliki
APPLY TAGizin untuk menambahkan tag ke kolom.tag_name
Harfiah
STRING.tag_nameharus unik dalam tabel atau kolom.tag_value
Harfiah
STRING.
UNSET TAGS ( tag_name [, ...] )Berlaku untuk:
Databricks SQL
Databricks Runtime 13.3 LTS ke atasHapus tag dari kolom. Anda harus memiliki
APPLY TAGizin untuk menghapus tag dari kolom.tag_name
Harfiah
STRING.tag_nameharus unik dalam tabel atau kolom.
Klausa DROP COLUMN
Penting
Fitur ini ada di Pratinjau Publik.
Berlaku untuk:
Databricks SQL
Databricks Runtime 11.3 LTS ke atas
Letakkan satu atau beberapa kolom atau bidang dalam relasi.
Saat menghilangkan kolom atau bidang, Anda juga perlu menghilangkan batasan pemeriksaan dependen serta kolom yang dihasilkan.
Untuk persyaratan, lihat Mengganti nama dan menghapus kolom dengan pemetaan kolom Delta Lake.
Sintaks
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parameter-parameternya
IF EXISTSSaat Anda menentukan
IF EXISTS, Azure Databricks mengabaikan upaya untuk menghilangkan kolom yang tidak ada. Jika tidak, menghilangkan kolom yang tidak ada akan menyebabkan kesalahan.-
Nama kolom yang sudah ada.
-
Nama lengkap yang terdefinisi dari suatu bidang yang ada.
Klausa UBAH NAMA COLUMN
Penting
Fitur ini ada di Pratinjau Publik.
Berlaku untuk:
Databricks SQL
Databricks Runtime 10.4 LTS ke atas
Mengganti nama kolom atau bidang dalam tabel Delta Lake yang diaktifkan untuk pemetaan kolom.
Saat Anda mengganti nama kolom atau bidang, Anda juga perlu mengubah batasan pemeriksaan dependen dan kolom yang dihasilkan. Tiap kunci primer dan kunci asing yang menggunakan kolom akan dihapus. Dalam hal kunci asing, Anda harus memiliki tabel tempat kunci asing ditentukan.
Untuk persyaratan dan cara mengaktifkan pemetaan kolom, lihat Ganti nama dan hapus kolom dengan pemetaan kolom Delta Lake.
Sintaks
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parameter-parameternya
-
Nama kolom saat ini.
-
Pengidentifikasi kolom baru. Pengidentifikasi harus unik di dalam tabel.
-
Nama lengkap dari sebuah bidang yang ada.
-
Pengidentifikasi bidang baru. Pengidentifikasi harus unik dalam struktur lokal.
Contoh
Lihat contoh ALTER TABLE.