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
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh ALTER TABLE
Contoh berikut menunjukkan penggunaan dasar dari perintah ALTER TABLE.
Mengganti nama tabel atau tampilan
Perintah berikut mengganti nama tabel USERS menjadi USERS_BKUP:
alter table users rename to users_bkup;
Anda juga dapat menggunakan jenis perintah ini untuk mengganti nama tampilan.
Mengubah pemilik tabel atau tampilan
Perintah berikut mengubah pemilik tabel VENUE menjadi pengguna DWUSER:
alter table venue owner to dwuser;
Perintah berikut membuat tampilan, lalu ubah pemiliknya:
create view vdate as select * from date; alter table vdate owner to vuser;
Ubah Nama Kolom
Perintah berikut mengganti nama kolom VENUESEATS dalam tabel VENUE menjadi VENUESIZE:
alter table venue rename column venueseats to venuesize;
Menjatuhkan batasan tabel
Untuk melepaskan batasan tabel, seperti kunci primer, kunci asing, atau batasan unik, pertama-tama temukan nama internal kendala tersebut. Kemudian tentukan nama kendala dalam perintah ALTER TABLE. Contoh berikut menemukan batasan untuk tabel CATEGORY, lalu melepas kunci utama dengan namacategory_pkey.
select constraint_name, constraint_type from information_schema.table_constraints where constraint_schema ='public' and table_name = 'category';constraint_name | constraint_type ----------------+---------------- category_pkey | PRIMARY KEYalter table category drop constraint category_pkey;
Mengubah kolom VARCHAR
Untuk menghemat penyimpanan, Anda dapat menentukan tabel pada awalnya dengan kolom VARCHAR dengan ukuran minimum yang diperlukan untuk kebutuhan data Anda saat ini. Kemudian, untuk mengakomodasi string yang lebih panjang, Anda dapat mengubah tabel untuk meningkatkan ukuran kolom.
Contoh berikut meningkatkan ukuran kolom EVENTNAME menjadi VARCHAR (300).
alter table event alter column eventname type varchar(300);
Mengubah kolom VARBYTE
Untuk menghemat penyimpanan, Anda dapat menentukan tabel pada awalnya dengan kolom VARBYTE dengan ukuran minimum yang diperlukan untuk kebutuhan data Anda saat ini. Kemudian, untuk mengakomodasi string yang lebih panjang, Anda dapat mengubah tabel untuk meningkatkan ukuran kolom.
Contoh berikut meningkatkan ukuran kolom EVENTNAME menjadi VARBYTE (300).
alter table event alter column eventname type varbyte(300);
Mengubah pengkodean kompresi untuk kolom
Anda dapat mengubah pengkodean kompresi kolom. Di bawah ini, Anda dapat menemukan serangkaian contoh yang menunjukkan pendekatan ini. Definisi tabel untuk contoh-contoh ini adalah sebagai berikut.
create table t1(c0 int encode lzo, c1 bigint encode zstd, c2 varchar(16) encode lzo, c3 varchar(32) encode zstd);
Pernyataan berikut mengubah pengkodean kompresi untuk kolom c0 dari pengkodean LZO ke pengkodean AZ64.
alter table t1 alter column c0 encode az64;
Pernyataan berikut mengubah pengkodean kompresi untuk kolom c1 dari pengkodean Zstandard ke pengkodean AZ64.
alter table t1 alter column c1 encode az64;
Pernyataan berikut mengubah pengkodean kompresi untuk kolom c2 dari pengkodean LZO menjadi Byte-dictionary encoding.
alter table t1 alter column c2 encode bytedict;
Pernyataan berikut mengubah pengkodean kompresi untuk kolom c3 dari pengkodean Zstandard ke pengkodean Runlength.
alter table t1 alter column c3 encode runlength;
Mengubah kolom DISTSTYLE KEY DISTKEY
Contoh berikut menunjukkan cara mengubah DISTSTYLE dan DISTKEY dari sebuah tabel.
Buat tabel dengan gaya distribusi EVEN. Tampilan SVV_TABLE_INFO menunjukkan bahwa DISTSTYLE adalah EVEN.
create table inventory( inv_date_sk int4 not null , inv_item_sk int4 not null , inv_warehouse_sk int4 not null , inv_quantity_on_hand int4 ) diststyle even; Insert into inventory values(1,1,1,1); select "table", "diststyle" from svv_table_info;table | diststyle -----------+---------------- inventory | EVEN
Ubah tabel DISTKEY menjadiinv_warehouse_sk. Tampilan SVV_TABLE_INFO menunjukkan inv_warehouse_sk kolom sebagai kunci distribusi yang dihasilkan.
alter table inventory alter diststyle key distkey inv_warehouse_sk; select "table", "diststyle" from svv_table_info;table | diststyle -----------+----------------------- inventory | KEY(inv_warehouse_sk)
Ubah tabel DISTKEY menjadiinv_item_sk. Tampilan SVV_TABLE_INFO menunjukkan inv_item_sk kolom sebagai kunci distribusi yang dihasilkan.
alter table inventory alter distkey inv_item_sk; select "table", "diststyle" from svv_table_info;table | diststyle -----------+----------------------- inventory | KEY(inv_item_sk)
Ubah tabel menjadi DISTSTYLE ALL
Contoh berikut menunjukkan cara mengubah tabel menjadi DISTSTYLE ALL.
Buat tabel dengan gaya distribusi EVEN. Tampilan SVV_TABLE_INFO menunjukkan bahwa DISTSTYLE adalah EVEN.
create table inventory( inv_date_sk int4 not null , inv_item_sk int4 not null , inv_warehouse_sk int4 not null , inv_quantity_on_hand int4 ) diststyle even; Insert into inventory values(1,1,1,1); select "table", "diststyle" from svv_table_info;table | diststyle -----------+---------------- inventory | EVEN
Ubah tabel DISTSTYLE menjadi ALL. Tampilan SVV_TABLE_INFO menunjukkan DISTSYTLE yang diubah.
alter table inventory alter diststyle all; select "table", "diststyle" from svv_table_info;table | diststyle -----------+---------------- inventory | ALL
Mengubah tabel SORTKEY
Anda dapat mengubah tabel untuk memiliki kunci pengurutan majemuk atau tanpa kunci pengurutan.
Dalam definisi tabel berikut, tabel t1 didefinisikan dengan sortkey yang disisipkan.
create table t1 (c0 int, c1 int) interleaved sortkey(c0, c1);
Perintah berikut mengubah tabel dari kunci pengurutan yang disisipkan menjadi kunci pengurutan majemuk.
alter table t1 alter sortkey(c0, c1);
Perintah berikut mengubah tabel untuk menghapus kunci pengurutan yang disisipkan.
alter table t1 alter sortkey none;
Dalam definisi tabel berikut, tabel t1 didefinisikan dengan kolom c0 sebagai sortkey.
create table t1 (c0 int, c1 int) sortkey(c0);
Perintah berikut mengubah tabel menjadi kunci peng t1 urutan majemuk.
alter table t1 alter sortkey(c0, c1);
Ubah tabel menjadi ENCODE AUTO
Contoh berikut menunjukkan cara mengubah tabel menjadi ENCODE AUTO.
Definisi tabel untuk contoh ini berikut. Kol c0 om didefinisikan dengan tipe encoding AZ64, dan kolom c1 didefinisikan dengan tipe encoding LZO.
create table t1(c0 int encode AZ64, c1 varchar encode LZO);
Untuk tabel ini, pernyataan berikut mengubah pengkodean menjadi AUTO.
alter table t1 alter encode auto;
Contoh berikut menunjukkan cara mengubah tabel untuk menghapus pengaturan ENCODE AUTO.
Definisi tabel untuk contoh ini berikut. Kolom tabel didefinisikan tanpa pengkodean. Dalam hal ini, pengkodean default ke ENCODE AUTO.
create table t2(c0 int, c1 varchar);
Untuk tabel ini, pernyataan berikut mengubah pengkodean kolom c0 menjadi LZO. Pengkodean tabel tidak lagi diatur ke ENCODE AUTO.
alter table t2 alter column c0 encode lzo;;
Mengubah kontrol keamanan tingkat baris
Perintah berikut mematikan RLS untuk tabel:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY OFF;
Perintah berikut mengaktifkan RLS untuk tabel:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON;
Perintah berikut mengaktifkan RLS untuk tabel dan membuatnya dapat diakses melalui datashares:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON; ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY FOR DATASHARES OFF;
Perintah berikut mengaktifkan RLS untuk tabel dan membuatnya tidak dapat diakses melalui data share:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON; ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY FOR DATASHARES ON;
Perintah berikut mengaktifkan RLS dan menyetel tipe konjungsi RLS ke OR untuk tabel:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE OR;
Perintah berikut mengaktifkan RLS dan menyetel tipe konjungsi RLS ke AND untuk tabel:
ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE AND;