ALTER TABLE Klausa COLUMN
Berlaku untuk: Databricks SQL Databricks Runtime
Menambahkan, memodifikasi, atau menghilangkan kolom dalam tabel atau bidang dalam kolom dalam tabel Delta Lake.
Izin yang diperlukan
Jika Anda menggunakan Katalog Unity, Anda harus memiliki izin MODIFY
untuk:
- KOLOM ALTER
- TAMBAHKAN KOLOM
- DROP COLUMN
Semua operasi lain memerlukan kepemilikan tabel.
Sintaks
ALTER TABLE table_name
{ ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause }
TAMBAHKAN klausa KOLOM
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
[ DEFAULT clause ] [ COMMENT comment ] [ FIRST | AFTER identifier ]
[ MASK clause ] } [, ...] ) }
Parameter
-
Nama kolom yang akan ditambahkan. Nama harus unik dalam tabel.
Kolom atau bidang akan ditambahkan di bagian akhir, kecuali jika
FIRST
atauAFTER name
ditentukan. -
Nama bidang yang sepenuhnya memenuhi syarat untuk ditambahkan ke kolom yang ada. Semua komponen jalur ke bidang berlapis harus ada dan nama bidang itu sendiri harus bersifat unik.
DEFAULT default_expression
Berlaku untuk: Databricks SQL Databricks Runtime 11.3 LTS ke atas
Menentukan nilai
DEFAULT
untuk kolom yang digunakan padaINSERT
danMERGE ... INSERT
saat kolom tidak ditentukan.Jika tidak ada default yang ditentukan,
DEFAULT NULL
tersirat untuk kolom yang dapat diubah ke null.default_expression
dapat terdiri dari fungsi atau operator SQL literal dan bawaan kecuali:- Fungsi agregat
- Fungsi jendela analitik
- Fungsi jendela peringkat
- Fungsi generator bernilai tabel
default_expression
tidak boleh berisi subkueri apa pun.DEFAULT
didukung 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.
COMMENT comment
Literal opsional
STRING
yang 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 tabel.
FIRST
Jika ditentukan, kolom akan ditambahkan sebagai kolom pertama dari tabel, atau kolom akan ditambahkan sebagai kolom pertama dalam struktur yang berisi.
AFTER
identifierJika ditentukan, kolom atau bidang akan langsung ditambahkan setelah bidang atau kolom
identifier
.-
Berlaku untuk: Databricks SQL Databricks Runtime 12.2 LTS dan di atas Unity Catalog saja
Penting
Fitur ini ada di Pratinjau Publik.
Menambahkan fungsi masker kolom untuk menganonimkan data sensitif. Semua kueri di masa mendatang 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 dan/atau keanggotaan grup pengguna yang memanggil untuk memutuskan apakah akan meredakan nilai.
ALTER COLUMN clause
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 |
SET DEFAULT clause |
DROP DEFAULT |
SYNC IDENTITY |
SET { MASK clause } |
DROP MASK |
SET TAGS clause |
UNSET TAGS clause } }
Parameter
-
Nama kolom yang akan diubah.
-
Nama lapangan yang sepenuhnya memenuhi syarat untuk diubah. Semua komponen jalur ke bidang bersarang harus ada.
COMMENT comment
Mengubah deskripsi kolom
column_name
.comment
harus harfiahSTRING
.FIRST
atauAFTER
pengidentifikasiMemindahkan kolom dari posisinya saat ini ke depan (
FIRST
) atau langsungAFTER
setelahidentifier
. Klausul ini hanya didukung jikatable_name
berupa tabel Delta.SET NOT NULL
atauDROP NOT NULL
Mengubah 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 IDENTITY
Berlaku untuk: Databricks SQL Databricks Runtime 10.4 LTS ke atas
Sinkronkan 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 manan
adalah nilai terkecil yang memenuhistart + n * step >= max()
(untuk langkah positif).Opsi ini hanya didukung untuk kolom identitas pada tabel Delta Lake.
DROP DEFAULT
Berlaku untuk: Databricks SQL Databricks Runtime 11.3 LTS ke atas
Menghapus 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 operasiINSERT
di masa mendatangSET DEFAULT default_expression
Berlaku untuk: Databricks SQL Databricks Runtime 11.3 LTS ke atas
Menentukan nilai
DEFAULT
untuk kolom yang digunakan padaINSERT
danMERGE ... INSERT
saat kolom tidak ditentukan.Jika tidak ada default yang ditentukan,
DEFAULT NULL
tersirat untuk kolom yang dapat diubah ke null.default_expression
dapat terdiri dari fungsi atau operator SQL literal dan bawaan kecuali:- Fungsi agregat
- Fungsi jendela analitik
- Fungsi jendela peringkat
- Fungsi generator bernilai tabel
default_expression
tidak boleh berisi subkueri.DEFAULT
didukung 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
rand
ataucurrent_timestamp
, nilai dihitung sekali saatALTER TABLE
dijalankan, 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.SET
Klausa MASKBerlaku untuk: Databricks SQL Databricks Runtime 12.2 LTS dan di atas Unity Catalog saja
Penting
Fitur ini ada di Pratinjau Publik.
Menambahkan fungsi masker kolom untuk menganonimkan data sensitif. Semua kueri di masa mendatang 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 dan/atau keanggotaan grup pengguna yang memanggil untuk memutuskan apakah akan meredakan nilai.
DROP MASK
Berlaku untuk: Hanya Katalog Unity
Penting
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 atas
Terapkan tag ke kolom. Anda harus memiliki
apply_tag
izin untuk menambahkan tag ke kolom.tag_name
Harfiah
STRING
.tag_name
harus unik dalam tabel atau kolom.tag_value
Harfiah
STRING
.
UNSET TAGS ( tag_name [, ...] )
Berlaku untuk: Databricks SQL Databricks Runtime 13.3 LTS ke atas
Hapus tag dari kolom. Anda harus memiliki
apply_tag
izin untuk menghapus tag dari kolom.tag_name
Harfiah
STRING
.tag_name
harus 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
Hilangkan satu atau beberapa kolom atau bidang dalam tabel Delta Lake.
Saat menghilangkan kolom atau bidang, Anda juga perlu menghilangkan batasan pemeriksaan dependen serta kolom yang dihasilkan.
Untuk persyaratan, lihat Mengganti nama dan meletakkan kolom dengan pemetaan kolom Delta Lake.
Sintaks
DROP [COLUMN | COLUMNS] [ IF EXISTS ] ( { {column_identifier | field_name} [, ...] )
Parameter
IF EXISTS
Saat 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 bidang yang telah sepenuhnya memenuhi syarat.
Ganti nama klausul KOLOM
Penting
Fitur ini ada di Pratinjau Publik.
Berlaku untuk: Databricks SQL Databricks Runtime 11.3 LTS ke atas
Mengganti nama kolom atau bidang dalam tabel Delta Lake.
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 dihilangkan. Dalam hal kunci asing, Anda harus memiliki tabel tempat kunci asing ditentukan.
Untuk persyaratan, lihat Mengganti nama dan meletakkan kolom dengan pemetaan kolom Delta Lake.
Sintaks
RENAME COLUMN { column_identifier TO to_column_identifier|
field_name TO to_field_identifier }
Parameter
-
Nama kolom yang ada.
-
Pengidentifikasi kolom baru. Pengidentifikasi harus unik di dalam tabel.
-
Nama bidang yang sepenuhnya memenuhi syarat yang ada.
-
Pengidentifikasi bidang baru. Pengidentifikasi harus unik dalam struktur lokal.
Contoh
Lihat Contoh ALTER TABLE.