

 Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting [ blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/) yang diterbitkan pada 30 Juni 2025. 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# ALTER TABLE
<a name="r_ALTER_TABLE"></a>

Perintah ini mengubah definisi tabel Amazon Redshift atau tabel eksternal Amazon Redshift Spectrum. Perintah ini memperbarui nilai dan properti yang ditetapkan oleh [CREATE TABLE](r_CREATE_TABLE_NEW.md) atau[CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md). Anda dapat menggunakan ALTER TABLE pada tampilan untuk keamanan tingkat baris (RLS).

Anda tidak dapat menjalankan ALTER TABLE pada tabel eksternal dalam blok transaksi (BEGIN... AKHIR). Untuk informasi lebih lanjut tentang transaksi, lihat[Tingkat isolasi di Amazon Redshift](c_serial_isolation.md). 

ALTER TABLE mengunci tabel untuk operasi baca dan tulis sampai transaksi yang menyertakan operasi ALTER TABLE selesai, kecuali dinyatakan secara khusus dalam dokumentasi bahwa Anda dapat menanyakan data atau melakukan operasi lain pada tabel saat diubah.

## Hak istimewa yang diperlukan
<a name="r_ALTER_TABLE-privileges"></a>

Pengguna yang mengubah tabel membutuhkan hak istimewa yang tepat agar perintah berhasil. Tergantung pada perintah ALTER TABLE, salah satu hak istimewa berikut diperlukan.
+ Superuser
+ Pengguna dengan hak istimewa ALTER TABLE
+ Pemilik tabel dengan hak istimewa USAGE pada skema

## Sintaksis
<a name="r_ALTER_TABLE-synopsis"></a>

```
ALTER TABLE table_name
{
ADD table_constraint
| DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
| OWNER TO new_owner
| RENAME TO new_name
| RENAME COLUMN column_name TO new_name
| ALTER COLUMN column_name TYPE updated_varchar_data_type_size
| ALTER COLUMN column_name ENCODE new_encode_type
| ALTER COLUMN column_name ENCODE encode_type,
| ALTER COLUMN column_name ENCODE encode_type, .....;
| ALTER DISTKEY column_name
| ALTER DISTSTYLE ALL
| ALTER DISTSTYLE EVEN
| ALTER DISTSTYLE KEY DISTKEY column_name
| ALTER DISTSTYLE AUTO
| ALTER [COMPOUND] SORTKEY ( column_name [,...] )
| ALTER SORTKEY AUTO
| ALTER SORTKEY NONE
| ALTER ENCODE AUTO
| ADD [ COLUMN ] column_name column_type
  [ DEFAULT default_expr ]
  [ ENCODE encoding ]
  [ NOT NULL | NULL ]
  [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ] |
| DROP [ COLUMN ] column_name [ RESTRICT | CASCADE ] 
| ROW LEVEL SECURITY { ON | OFF } [ CONJUNCTION TYPE { AND | OR } ] [ FOR DATASHARES ]
| MASKING { ON | OFF } FOR DATASHARES }

where table_constraint is:

[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] )
| PRIMARY KEY ( column_name [, ... ] )
| FOREIGN KEY (column_name [, ... ] )
   REFERENCES  reftable [ ( refcolumn ) ]}

The following options apply only to external tables:

SET LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' }
| SET FILE FORMAT format |
| SET TABLE PROPERTIES ('property_name'='property_value')
| PARTITION ( partition_column=partition_value [, ...] )
  SET LOCATION { 's3://bucket/folder' |'s3://bucket/manifest_file' }
| ADD [IF NOT EXISTS]
    PARTITION ( partition_column=partition_value [, ...] ) LOCATION { 's3://bucket/folder' |'s3://bucket/manifest_file' }
    [, ... ]
| DROP PARTITION ( partition_column=partition_value [, ...] )
```

Untuk mengurangi waktu untuk menjalankan perintah ALTER TABLE, Anda dapat menggabungkan beberapa klausa dari perintah ALTER TABLE.

Amazon Redshift mendukung kombinasi klausa ALTER TABLE berikut:

```
ALTER TABLE tablename ALTER SORTKEY (column_list), ALTER DISTKEY column_Id;
ALTER TABLE tablename ALTER DISTKEY column_Id, ALTER SORTKEY (column_list);
ALTER TABLE tablename ALTER SORTKEY (column_list), ALTER DISTSTYLE ALL;
ALTER TABLE tablename ALTER DISTSTYLE ALL, ALTER SORTKEY (column_list);
```

## Parameter
<a name="r_ALTER_TABLE-parameters"></a>

 *table\_name*   
Nama tabel yang akan diubah. Entah menentukan hanya nama tabel, atau gunakan format * schema\_name.table\_name * untuk menggunakan skema tertentu. Tabel eksternal harus memenuhi syarat dengan nama skema eksternal. Anda juga dapat menentukan nama tampilan jika Anda menggunakan pernyataan ALTER TABLE untuk mengganti nama tampilan atau mengubah pemiliknya. Panjang maksimum untuk nama tabel adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Anda dapat menggunakan karakter UTF-8 multibyte hingga maksimal empat byte. Untuk informasi selengkapnya tentang nama yang valid, lihat[Nama dan pengenal](r_names.md).

TAMBAHKAN * table\_restriint *   
Klausa yang menambahkan batasan yang ditentukan ke tabel. Untuk deskripsi * nilai * table\_restriint yang valid, lihat. [CREATE TABLE](r_CREATE_TABLE_NEW.md)  
Anda tidak dapat menambahkan batasan kunci primer ke kolom yang dapat dibatalkan. Jika kolom awalnya dibuat dengan batasan NOT NULL, Anda dapat menambahkan batasan kunci primer.

DROP CONSTRAINT Constraint\_name * *   
Klausa yang menghapus batasan bernama dari tabel. Untuk melepaskan kendala, tentukan nama kendala, bukan jenis kendala. Untuk melihat nama kendala tabel, jalankan kueri berikut.  

```
select constraint_name, constraint_type
from information_schema.table_constraints;
```

MEMBATASI   
Klausa yang menghapus hanya batasan yang ditentukan. RESTRICT adalah opsi untuk DROP CONSTRAINT. RESTRICT tidak dapat digunakan dengan CASCADE. 

KASKADE   
Klausa yang menghapus batasan yang ditentukan dan apa pun yang bergantung pada batasan itu. CASCADE adalah opsi untuk DROP CONSTRAINT. CASCADE tidak dapat digunakan dengan RESTRICT.

PEMILIK KE * new\_owner *   
Klausa yang mengubah pemilik tabel (atau tampilan) ke nilai * new\_owner*.

GANTI NAMA MENJADI * new\_name *   
Klausa yang mengganti nama tabel (atau tampilan) ke nilai yang ditentukan dalam * new * \_name. Panjang nama tabel maksimum adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte.  
Anda tidak dapat mengganti nama tabel permanen menjadi nama yang dimulai dengan '\#'. Nama tabel yang dimulai dengan '\#' menunjukkan tabel sementara.  
Anda tidak dapat mengganti nama tabel eksternal.

UBAH KOLOM * N\_Nama KOLOM TIPE updated\_varchar\_data\_type\_size * * *   
Klausa yang mengubah ukuran kolom yang didefinisikan sebagai tipe data VARCHAR. Klausa ini hanya mendukung perubahan ukuran tipe data VARCHAR. Pertimbangkan batasan berikut:  
+ Anda tidak dapat mengubah kolom dengan pengkodean kompresi BYTEDICT, RUNLENGTH, TEXT255, atau TEXT32K. 
+ Anda tidak dapat mengurangi ukuran kurang dari ukuran maksimum data yang ada. 
+ Anda tidak dapat mengubah kolom dengan nilai default. 
+ Anda tidak dapat mengubah kolom dengan UNIQUE, PRIMARY KEY, atau FOREIGN KEY. 
+ Anda tidak dapat mengubah kolom dalam blok transaksi (BEGIN... AKHIR). Untuk informasi lebih lanjut tentang transaksi, lihat[Tingkat isolasi di Amazon Redshift](c_serial_isolation.md). 

UBAH NAMA\_ * kolom ENCODE new\_encode\_type * * *   
Klausa yang mengubah pengkodean kompresi kolom. Jika Anda menentukan pengkodean kompresi untuk kolom, tabel tidak lagi disetel ke ENCODE AUTO. Untuk informasi tentang pengkodean kompresi, lihat[Kompresi kolom untuk mengurangi ukuran data yang disimpan](t_Compressing_data_on_disk.md).   
Saat Anda mengubah pengkodean kompresi untuk kolom, tabel tetap tersedia untuk kueri.  
Pertimbangkan batasan berikut:  
+ Anda tidak dapat mengubah kolom ke pengkodean yang sama seperti yang didefinisikan saat ini untuk kolom. 
+ Anda tidak dapat mengubah pengkodean untuk kolom dalam tabel dengan sortkey yang disisipkan. 

UBAH NAMA\_ * kolom ENCODE encode\_type, ALTER COLUMn\_ * name * ENCODE encode\_type*, * * * * ... ;   
Klausa yang mengubah pengkodean kompresi beberapa kolom dalam satu perintah. Untuk informasi tentang pengkodean kompresi, lihat[Kompresi kolom untuk mengurangi ukuran data yang disimpan](t_Compressing_data_on_disk.md).  
Saat Anda mengubah pengkodean kompresi untuk kolom, tabel tetap tersedia untuk kueri.  
 Pertimbangkan batasan berikut:  
+ Anda tidak dapat mengubah kolom ke jenis pengkodean yang sama atau berbeda beberapa kali dalam satu perintah.
+ Anda tidak dapat mengubah kolom ke pengkodean yang sama seperti yang didefinisikan saat ini untuk kolom. 
+ Anda tidak dapat mengubah pengkodean untuk kolom dalam tabel dengan sortkey yang disisipkan. 

UBAH DISTSTYLE SEMUA  
Klausa yang mengubah gaya distribusi tabel yang ada menjadi`ALL`. Pertimbangkan hal berikut:  
+ ALTER DISTSTYLE, ALTER SORTKEY, dan VACUUM tidak dapat berjalan secara bersamaan di tabel yang sama. 
  + Jika VACUUM saat ini sedang berjalan, maka menjalankan ALTER DISTSTYLE ALL mengembalikan kesalahan. 
  + Jika ALTER DISTSTYLE ALL berjalan, maka penyedot debu latar belakang tidak dimulai di atas meja. 
+ Perintah ALTER DISTSTYLE ALL tidak didukung untuk tabel dengan kunci pengurutan yang disisipkan dan tabel sementara.
+ Jika gaya distribusi sebelumnya didefinisikan sebagai AUTO, maka tabel tidak lagi menjadi kandidat untuk pengoptimalan tabel otomatis. 
Untuk informasi lebih lanjut tentang DISTSTYLE ALL, lihat[CREATE TABLE](r_CREATE_TABLE_NEW.md).

UBAH DISTSTYLE BAHKAN  
Klausa yang mengubah gaya distribusi tabel yang ada menjadi`EVEN`. Pertimbangkan hal berikut:  
+ ALTER DISTSYTLE, ALTER SORTKEY, dan VACUUM tidak dapat berjalan secara bersamaan di tabel yang sama. 
  + Jika VACUUM saat ini sedang berjalan, maka menjalankan ALTER DISTSTYLE EVEN mengembalikan kesalahan. 
  + Jika ALTER DISTSTYLE EVEN berjalan, maka vakum latar belakang tidak dimulai di atas meja. 
+ Perintah ALTER DISTSTYLE EVEN tidak didukung untuk tabel dengan kunci pengurutan yang disisipkan dan tabel sementara.
+ Jika gaya distribusi sebelumnya didefinisikan sebagai AUTO, maka tabel tidak lagi menjadi kandidat untuk pengoptimalan tabel otomatis. 
Untuk informasi lebih lanjut tentang DISTSTYLE EVEN, lihat[CREATE TABLE](r_CREATE_TABLE_NEW.md).

UBAH NAMA\_kolom DISTKEY * atau ALTER * DISTSTYLE KEY NAMa\_kolom DISTKEY * *  
Klausa yang mengubah kolom yang digunakan sebagai kunci distribusi tabel. Pertimbangkan hal berikut:  
+ VACUUM dan ALTER DISTKEY tidak dapat berjalan secara bersamaan di meja yang sama. 
  + Jika VACUUM sudah berjalan, maka ALTER DISTKEY mengembalikan kesalahan.
  + Jika ALTER DISTKEY berjalan, maka vakum latar belakang tidak dimulai di atas meja.
  + Jika ALTER DISTKEY berjalan, maka vakum latar depan mengembalikan kesalahan.
+ Anda hanya dapat menjalankan satu perintah ALTER DISTKEY pada tabel pada satu waktu. 
+ Perintah ALTER DISTKEY tidak didukung untuk tabel dengan kunci pengurutan yang disisipkan. 
+ Jika gaya distribusi sebelumnya didefinisikan sebagai AUTO, maka tabel tidak lagi menjadi kandidat untuk pengoptimalan tabel otomatis. 
Saat menentukan DISTSTYLE KEY, data didistribusikan oleh nilai-nilai di kolom DISTKEY. Untuk informasi lebih lanjut tentang DISTSTYLE, lihat[CREATE TABLE](r_CREATE_TABLE_NEW.md).

UBAH DISTSTYLE AUTO  
Klausa yang mengubah gaya distribusi tabel yang ada menjadi AUTO.   
Ketika Anda mengubah gaya distribusi menjadi AUTO, gaya distribusi tabel diatur ke berikut:   
+ Sebuah tabel kecil dengan DISTSTYLE ALL diubah menjadi AUTO (ALL). 
+ Meja kecil dengan DISTSTYLE EVEN diubah menjadi AUTO (ALL). 
+ Sebuah tabel kecil dengan DISTSTYLE KEY dikonversi ke AUTO (ALL). 
+ Tabel besar dengan DISTSTYLE ALL diubah menjadi AUTO (EVEN). 
+ Meja besar dengan DISTSTYLE EVEN diubah menjadi AUTO (EVEN). 
+ Tabel besar dengan DISTSTYLE KEY dikonversi ke AUTO (KEY) dan DISTKEY dipertahankan. Dalam hal ini, Amazon Redshift tidak membuat perubahan pada tabel.
Jika Amazon Redshift menentukan bahwa gaya atau kunci distribusi baru akan meningkatkan kinerja kueri, maka Amazon Redshift mungkin mengubah gaya distribusi atau kunci tabel Anda di masa mendatang. Misalnya, Amazon Redshift dapat mengonversi tabel dengan DISTSTYLE AUTO (KEY) menjadi AUTO (EVEN), atau sebaliknya. Untuk informasi selengkapnya tentang perilaku saat kunci distribusi diubah, termasuk redistribusi data dan kunci, lihat rekomendasi [ Amazon Redshift Advisor. ](https://docs.aws.amazon.com/redshift/latest/dg/advisor-recommendations.html#alter-diststyle-distkey-recommendation)  
Untuk informasi lebih lanjut tentang DISTSTYLE AUTO, lihat[CREATE TABLE](r_CREATE_TABLE_NEW.md).   
Untuk melihat gaya distribusi tabel, kueri tampilan katalog sistem SVV\_TABLE\_INFO. Untuk informasi selengkapnya, lihat [SVV\_TABLE\_INFO](r_SVV_TABLE_INFO.md). Untuk melihat rekomendasi Amazon Redshift Advisor untuk tabel, kueri tampilan katalog sistem SVV\_ALTER\_TABLE\_RECOMMENDATIONS. Untuk informasi selengkapnya, lihat [SVV\_ALTER\_TABLE\_RECOMMENDATIONS](r_SVV_ALTER_TABLE_RECOMMENDATIONS.md). Untuk melihat tindakan yang dilakukan oleh Amazon Redshift, kueri tampilan katalog sistem SVL\_AUTO\_WORKER\_ACTION. Untuk informasi selengkapnya, lihat [SVL\_AUTO\_WORKER\_ACTION](r_SVL_AUTO_WORKER_ACTION.md). 

UBAH [COMPOUND] SORTKEY (nama\_ * kolom [,...*])  
Klausa yang mengubah atau menambahkan kunci pengurutan yang digunakan untuk tabel. ALTER SORTKEY tidak didukung untuk tabel sementara.  
Saat Anda mengubah kunci pengurutan, pengkodean kompresi kolom di kunci pengurutan baru atau asli dapat berubah. Jika tidak ada pengkodean yang ditentukan secara eksplisit untuk tabel, maka Amazon Redshift secara otomatis menetapkan pengkodean kompresi sebagai berikut:  
+ Kolom yang didefinisikan sebagai kunci pengurutan diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai tipe data BOOLEAN, REAL, atau DOUBLE PRECISION diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP, atau TIMESTAMPTZ diberi kompresi AZ64.
+ Kolom yang didefinisikan sebagai CHAR atau VARCHAR diberi kompresi LZO.
Pertimbangkan hal berikut:  
+ Anda dapat menentukan maksimum 400 kolom untuk kunci pengurutan per tabel. 
+ Anda dapat mengubah kunci pengurutan yang disisipkan menjadi kunci pengurutan majemuk atau tanpa kunci pengurutan. Namun, Anda tidak dapat mengubah kunci pengurutan majemuk menjadi kunci pengurutan yang disisipkan. 
+ Jika kunci pengurutan sebelumnya didefinisikan sebagai AUTO, maka tabel tidak lagi menjadi kandidat untuk pengoptimalan tabel otomatis. 
+ Amazon Redshift merekomendasikan penggunaan penyandian RAW (tanpa kompresi) untuk kolom yang didefinisikan sebagai kunci pengurutan. Ketika Anda mengubah kolom untuk memilihnya sebagai kunci pengurutan, kompresi kolom diubah menjadi kompresi RAW (tanpa kompresi). Ini dapat meningkatkan jumlah penyimpanan yang dibutuhkan oleh tabel. Seberapa besar ukuran tabel meningkat tergantung pada definisi tabel tertentu dan isi tabel. Untuk informasi selengkapnya tentang kompresi, lihat [Pengkodean kompresi](c_Compression_encodings.md) 
Ketika data dimuat ke dalam tabel, data dimuat dalam urutan kunci pengurutan. Saat Anda mengubah tombol pengurutan, Amazon Redshift menyusun ulang data. Untuk informasi lebih lanjut tentang SORTKEY, lihat. [CREATE TABLE](r_CREATE_TABLE_NEW.md)

ALTER SORTKEY OTOMATIS  
Klausa yang mengubah atau menambahkan kunci pengurutan tabel target ke AUTO. ALTER SORTKEY AUTO tidak didukung untuk tabel sementara.   
Saat Anda mengubah kunci pengurutan menjadi AUTO, Amazon Redshift mempertahankan kunci pengurutan tabel yang ada.   
Jika Amazon Redshift menentukan bahwa kunci pengurutan baru akan meningkatkan kinerja kueri, maka Amazon Redshift mungkin mengubah kunci pengurutan tabel Anda di masa mendatang.   
Untuk informasi selengkapnya tentang SORTKEY AUTO, lihat. [CREATE TABLE](r_CREATE_TABLE_NEW.md)   
Untuk melihat kunci pengurutan tabel, kueri tampilan katalog sistem SVV\_TABLE\_INFO. Untuk informasi selengkapnya, lihat [SVV\_TABLE\_INFO](r_SVV_TABLE_INFO.md). Untuk melihat rekomendasi Amazon Redshift Advisor untuk tabel, kueri tampilan katalog sistem SVV\_ALTER\_TABLE\_RECOMMENDATIONS. Untuk informasi selengkapnya, lihat [SVV\_ALTER\_TABLE\_RECOMMENDATIONS](r_SVV_ALTER_TABLE_RECOMMENDATIONS.md). Untuk melihat tindakan yang dilakukan oleh Amazon Redshift, kueri tampilan katalog sistem SVL\_AUTO\_WORKER\_ACTION. Untuk informasi selengkapnya, lihat [SVL\_AUTO\_WORKER\_ACTION](r_SVL_AUTO_WORKER_ACTION.md). 

ALTER SORTKEY TIDAK ADA  
Klausa yang menghapus kunci pengurutan dari tabel target.   
Jika kunci pengurutan sebelumnya didefinisikan sebagai AUTO, maka tabel tidak lagi menjadi kandidat untuk pengoptimalan tabel otomatis. 

UBAH PENGKODEAN OTOMATIS  
Klausa yang mengubah jenis pengkodean kolom tabel target menjadi AUTO. Saat Anda mengubah pengkodean ke AUTO, Amazon Redshift mempertahankan jenis pengkodean kolom yang ada dalam tabel. Kemudian, jika Amazon Redshift menentukan bahwa jenis pengkodean baru dapat meningkatkan kinerja kueri, Amazon Redshift dapat mengubah jenis pengkodean kolom tabel.   
Jika Anda mengubah satu atau beberapa kolom untuk menentukan pengkodean, Amazon Redshift tidak lagi secara otomatis menyesuaikan pengkodean untuk semua kolom dalam tabel. Kolom mempertahankan pengaturan encode saat ini.  
Tindakan berikut tidak mempengaruhi pengaturan ENCODE AUTO untuk tabel:   
+ Mengganti nama tabel.
+ Mengubah pengaturan DISTSTYLE atau SORTKEY untuk tabel.
+ Menambahkan atau menjatuhkan kolom dengan pengaturan ENCODE.
+ Menggunakan opsi COMPUPDATE dari perintah COPY. Untuk informasi selengkapnya, lihat [Operasi beban data](copy-parameters-data-load.md).
Untuk melihat pengkodean tabel, kueri tampilan katalog sistem SVV\_TABLE\_INFO. Untuk informasi selengkapnya, lihat [SVV\_TABLE\_INFO](r_SVV_TABLE_INFO.md).

GANTI NAMA * COLUMN COLUMN\_NAME MENJADI new\_name * * *   
Klausa yang mengganti nama kolom ke nilai yang ditentukan dalam * new * \_name. Panjang nama kolom maksimum adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Untuk informasi selengkapnya tentang nama yang valid, lihat[Nama dan pengenal](r_names.md).

TAMBAHKAN [KOLOM] nama\_ * kolom *   
Klausa yang menambahkan kolom dengan nama yang ditentukan ke tabel. Anda dapat menambahkan hanya satu kolom di setiap pernyataan ALTER TABLE.  
Anda tidak dapat menambahkan kolom yang merupakan kunci distribusi (DISTKEY) atau kunci pengurutan (SORTKEY) dari tabel.  
 Anda tidak dapat menggunakan perintah ALTER TABLE ADD COLUMN untuk mengubah tabel berikut dan atribut kolom:   
+ UNIK
+ KUNCI UTAMA
+ REFERENSI (kunci asing)
+ IDENTITAS atau DIHASILKAN SECARA DEFAULT SEBAGAI IDENTITAS
Panjang nama kolom maksimum adalah 127 byte; nama yang lebih panjang dipotong menjadi 127 byte. Jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel adalah 1.600.  
Batasan berikut berlaku saat menambahkan kolom ke tabel eksternal:  
+ Anda tidak dapat menambahkan kolom ke tabel eksternal dengan batasan kolom DEFAULT, ENCODE, NOT NULL, atau NULL. 
+ Anda tidak dapat menambahkan kolom ke tabel eksternal yang ditentukan menggunakan format file AVRO. 
+ Jika pseudocolumn diaktifkan, jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel eksternal adalah 1.598. Jika pseudocolumn tidak diaktifkan, jumlah maksimum kolom yang dapat Anda tentukan dalam satu tabel adalah 1.600. 
Untuk informasi selengkapnya, lihat [CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md).

 *tipe\_kolom *   
Jenis data kolom yang ditambahkan. Untuk kolom CHAR dan VARCHAR, Anda dapat menggunakan kata kunci MAX alih-alih mendeklarasikan panjang maksimum. MAX menetapkan panjang maksimum ke 4.096 byte untuk CHAR atau 65.535 byte untuk VARCHAR. Ukuran maksimum objek GEOMETRY adalah 1.048.447 byte.   
Untuk informasi tentang tipe data yang didukung Amazon Redshift, lihat[Jenis Data](c_Supported_data_types.md).

*DEFAULT default\_expr *   <a name="alter-table-default"></a>
Klausa yang menetapkan nilai data default untuk kolom. Tipe data * default\_expr * harus sesuai dengan tipe data kolom. Nilai DEFAULT harus berupa ekspresi bebas variabel. Subquery, referensi silang ke kolom lain dalam tabel saat ini, dan fungsi yang ditentukan pengguna tidak diperbolehkan.  
*Default\_expr * digunakan dalam operasi INSERT apa pun yang tidak menentukan nilai untuk kolom. Jika tidak ada nilai default yang ditentukan, nilai default untuk kolom adalah null.  
Jika operasi COPY menemukan bidang null pada kolom yang memiliki nilai DEFAULT dan batasan NOT NULL, perintah COPY menyisipkan nilai * default * \_expr.   
DEFAULT tidak didukung untuk tabel eksternal.

ENCODE pengkodean * *   
Pengkodean kompresi untuk kolom. Secara default, Amazon Redshift secara otomatis mengelola pengkodean kompresi untuk semua kolom dalam tabel jika Anda tidak menentukan pengkodean kompresi untuk kolom apa pun dalam tabel atau jika Anda menentukan opsi ENCODE AUTO untuk tabel.  
Jika Anda menentukan pengkodean kompresi untuk kolom apa pun dalam tabel atau jika Anda tidak menentukan opsi ENCODE AUTO untuk tabel, Amazon Redshift secara otomatis menetapkan pengkodean kompresi ke kolom yang tidak Anda tentukan pengkodean kompresi sebagai berikut:  
+ Semua kolom dalam tabel sementara diberi kompresi RAW secara default.
+ Kolom yang didefinisikan sebagai kunci pengurutan diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai tipe data BOOLEAN, REAL, DOUBLE PRECISION, GEOMETRY, atau GEOGRAPHY diberi kompresi RAW.
+ Kolom yang didefinisikan sebagai SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIME, TIMETZ, TIMESTAMP, atau TIMESTAMPTZ diberi kompresi AZ64.
+ Kolom yang didefinisikan sebagai CHAR, VARCHAR, atau VARBYTE diberi kompresi LZO.
Jika Anda tidak ingin kolom dikompresi, tentukan pengkodean RAW secara eksplisit.
[compression encodings](c_Compression_encodings.md#compression-encoding-list) berikut didukung:  
+ AZ64
+ BYTEDICT
+ DELTA
+ DELTA32K
+ LZO
+ MAYORIT8
+ MAYORIT16
+ MAYORIT32
+ RAW (tanpa kompresi)
+ PANJANG
+ TEKS255
+ TEKS32K
+ ZSTD
ENCODE tidak didukung untuk tabel eksternal.

BUKAN NULL \| NULL   
NOT NULL menentukan bahwa kolom tidak diizinkan untuk berisi nilai null. NULL, default, menentukan bahwa kolom menerima nilai null.  
NOT NULL dan NULL tidak didukung untuk tabel eksternal.

SUSUN {CASE\_SENSITIVE \| CS \| CASE\_INSENSITIVE \| CI}  
Klausa yang menentukan apakah pencarian string atau perbandingan pada kolom peka huruf besar/kecil atau tidak peka huruf besar/kecil. Nilai defaultnya sama dengan konfigurasi sensitivitas huruf besar saat ini dari database.  
Untuk memeriksa kolasi database saat ini, gunakan [DB\_COLLATION](r_DB_COLLATION.md) fungsi.  
CASE\_SENSITIVE dan CS dapat dipertukarkan dan menghasilkan hasil yang sama. Demikian pula, CASE\_INSENSITIVE dan CI dapat dipertukarkan dan menghasilkan hasil yang sama.

JATUHKAN [KOLOM] nama\_ * kolom *   
Nama kolom yang akan dihapus dari tabel.  
Anda tidak dapat menjatuhkan kolom terakhir dalam tabel. Sebuah tabel harus memiliki setidaknya satu kolom.  
Anda tidak dapat melepaskan kolom yang merupakan kunci distribusi (DISTKEY) atau kunci pengurutan (SORTKEY) dari tabel. Perilaku default untuk DROP COLUMN adalah RESTRICT jika kolom memiliki objek dependen, seperti tampilan, kunci primer, kunci asing, atau pembatasan UNIK.  
Batasan berikut berlaku saat menjatuhkan kolom dari tabel eksternal:  
+ Anda tidak dapat melepaskan kolom dari tabel eksternal jika kolom tersebut digunakan sebagai partisi.
+ Anda tidak dapat melepaskan kolom dari tabel eksternal yang ditentukan menggunakan format file AVRO. 
+ RESTRICT dan CASCADE diabaikan untuk tabel eksternal.
+ Anda tidak dapat menghapus kolom tabel kebijakan yang direferensikan di dalam definisi kebijakan kecuali Anda menghapus atau melepaskan kebijakan tersebut. Ini juga berlaku ketika opsi CASCADE ditentukan. Anda dapat melepaskan kolom lain di tabel kebijakan.
Untuk informasi selengkapnya, lihat [CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md).

MEMBATASI   
Ketika digunakan dengan DROP COLUMN, RESTRICT berarti kolom yang akan dijatuhkan tidak dijatuhkan, dalam kasus ini:  
+ Jika tampilan yang ditentukan mereferensikan kolom yang sedang dijatuhkan
+ Jika kunci asing mereferensikan kolom
+ Jika kolom mengambil bagian dalam kunci multipart
RESTRICT tidak dapat digunakan dengan CASCADE.  
RESTRICT dan CASCADE diabaikan untuk tabel eksternal.

KASKADE   
Saat digunakan dengan DROP COLUMN, menghapus kolom yang ditentukan dan apa pun yang bergantung pada kolom itu. CASCADE tidak dapat digunakan dengan RESTRICT.  
RESTRICT dan CASCADE diabaikan untuk tabel eksternal.

Opsi berikut hanya berlaku untuk tabel eksternal.

TETAPKAN LOKASI {'s3://*bucket/folder*/' \| 's3://'} * bucket/manifest\_file *  
Jalur ke folder Amazon S3 yang berisi file data atau file manifes yang berisi daftar jalur objek Amazon S3. Bucket harus berada di Wil AWS ayah yang sama dengan cluster Amazon Redshift. Untuk daftar Wilayah yang didukung AWS , lihat[Batasan Amazon Redshift Spectrum](c-spectrum-considerations.md). Untuk informasi selengkapnya tentang menggunakan file manifes, lihat LOKASI di [Parameter](r_CREATE_EXTERNAL_TABLE.md#r_CREATE_EXTERNAL_TABLE-parameters) referensi CREATE EXTERNAL TABLE.

ATUR * FORMAT FILE *  
Format file untuk file data eksternal.  
Format yang valid adalah sebagai berikut:  
+ AVRO 
+ PARQUET
+ RCFILE
+ SEQUENCEFILE
+ TEXTFILE 

ATUR PROPERTI TABEL ('*property\_name' = * 'property\_value'*) *   
Klausa yang menetapkan definisi tabel untuk properti tabel untuk tabel eksternal.   
Properti tabel peka huruf besar/kecil.  
'numrow * s' = 'hitung\_baris' *   
Properti yang menetapkan nilai numRows untuk definisi tabel. Untuk memperbarui statistik tabel eksternal secara eksplisit, atur properti numRows untuk menunjukkan ukuran tabel. Amazon Redshift tidak menganalisis tabel eksternal untuk menghasilkan statistik tabel yang digunakan pengoptimal kueri untuk menghasilkan rencana kueri. Jika statistik tabel tidak disetel untuk tabel eksternal, Amazon Redshift akan menghasilkan rencana eksekusi kueri. Rencana ini didasarkan pada asumsi bahwa tabel eksternal adalah tabel yang lebih besar dan tabel lokal adalah tabel yang lebih kecil.  
'skip.header.line.count'=' hitung\_baris * '*  
Properti yang menetapkan jumlah baris untuk dilewati di awal setiap file sumber.

PARTISI (*partisi\_kolom * = * partisi\_nilai [,...] * TETAPKAN LOKASI {'s3://*bucket*/*folder * '\| 's3://*bucket*/*manifest * \_file'}  
Klausa yang menetapkan lokasi baru untuk satu atau lebih kolom partisi. 

TAMBAHKAN [JIKA TIDAK ADA] PARTISI (*partition\_column * = * partition\_value * [,...]) LOKASI {'s3://*bucket*/*folder * '\| 's3://*bucket*/manifest\_file'} [,...] * *  
Sebuah klausa yang menambahkan satu atau lebih partisi. Anda dapat menentukan beberapa klausa PARTITION menggunakan pernyataan ALTER TABLE... ADD tunggal.  
Jika Anda menggunakan AWS Glue katalog, Anda dapat menambahkan hingga 100 partisi menggunakan pernyataan ALTER TABLE tunggal.
Klausa IF NOT EXISTS menunjukkan bahwa jika partisi yang ditentukan sudah ada, perintah tidak boleh membuat perubahan. Ini juga menunjukkan bahwa perintah harus mengembalikan pesan bahwa partisi ada, daripada diakhiri dengan kesalahan. Klausa ini berguna saat membuat skrip, sehingga skrip tidak gagal jika ALTER TABLE mencoba menambahkan partisi yang sudah ada. 

JATUHKAN PARTISI (*partisi\_kolom * = * partisi\_nilai [,...]*)   
Klausa yang menjatuhkan partisi yang ditentukan. Menjatuhkan partisi hanya mengubah metadata tabel eksternal. Data di Amazon S3 tidak terpengaruh.

KEAMANAN TINGKAT BARIS {ON \| OFF} [TIPE KONJUNGSI {DAN \| ATAU}] [UNTUK BERBAGI DATA]  
Klausa yang mengaktifkan atau menonaktifkan keamanan tingkat baris untuk relasi.  
Saat keamanan tingkat baris diaktifkan untuk relasi, Anda hanya dapat membaca baris yang diizinkan untuk diakses oleh kebijakan keamanan tingkat baris. Jika tidak ada kebijakan yang memberi Anda akses ke relasi, Anda tidak dapat melihat baris apa pun dari relasi. Hanya pengguna super dan pengguna atau peran yang memiliki `sys:secadmin` peran yang dapat mengatur klausa KEAMANAN TINGKAT BARIS. Untuk informasi selengkapnya, lihat [Row-level keamanan](t_rls.md). Pernyataan ini didukung pada database yang terhubung atau pada database dengan izin federasi amazon redshift. Klausa FOR DATASHARES tidak didukung pada database dengan izin federasi Amazon Redshift.  
+ [TIPE KONJUNGSI {DAN \| ATAU}] 

  Klausa yang memungkinkan Anda memilih jenis konjungsi kebijakan keamanan tingkat baris untuk relasi. Ketika beberapa kebijakan keamanan tingkat baris dilampirkan ke relasi, Anda dapat menggabungkan kebijakan dengan klausa AND atau OR. Secara default, Amazon Redshift menggabungkan kebijakan RLS dengan klausa AND. Pengguna super, pengguna, atau peran yang memiliki `sys:secadmin` peran dapat menggunakan klausa ini untuk menentukan jenis konjungsi kebijakan keamanan tingkat baris untuk relasi. Untuk informasi selengkapnya, lihat [Menggabungkan beberapa kebijakan per pengguna](t_rls_combine_policies.md). 
+ UNTUK BERBAGI DATA

  Klausa yang menentukan apakah suatu RLS-protected relasi dapat diakses melalui datashares. Secara default, RLS-protected relasi tidak dapat diakses melalui datashare. Perintah ALTER TABLE ROW LEVEL SECURITY yang dijalankan dengan klausa ini hanya memengaruhi properti aksesibilitas datashare relasi. Properti ROW LEVEL SECURITY tidak diubah. 

   Jika Anda membuat RLS-protected relasi dapat diakses melalui datashares, relasi tersebut tidak memiliki keamanan tingkat baris di database yang dibagikan data sisi konsumen. Hubungan mempertahankan properti RLS di sisi produsen. 

MASKING {ON \| OFF} UNTUK BERBAGI DATA  
Klausa yang menentukan apakah DDM-protected relasi dapat diakses melalui datashares. Secara default, DDM-protected relasi tidak dapat diakses melalui datashare. Jika Anda membuat DDM-protected relasi dapat diakses melalui datashares, relasi tidak akan memiliki perlindungan masking di database yang dibagikan data sisi konsumen. Hubungan mempertahankan properti masking di sisi produsen. Hanya pengguna super dan pengguna atau peran yang memiliki peran yang dapat mengatur `sys:secadmin` klausa MASKING FOR DATASHARES. Untuk informasi selengkapnya, lihat [Penyembunyian data dinamis](t_ddm.md). 

## Contoh
<a name="r_ALTER_TABLE-examples"></a>

Untuk contoh yang menunjukkan cara menggunakan perintah ALTER TABLE, lihat berikut ini.
+ [Contoh ALTER TABLE](r_ALTER_TABLE_examples_basic.md)
+ [ALTER CONTOH TABEL EKSTERNAL](r_ALTER_TABLE_external-table.md)
+ [Contoh ALTER TABLE ADD dan DROP COLUMN](r_ALTER_TABLE_COL_ex-add-drop.md)