Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Contoh ALTER TABLE - Amazon Redshift

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

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.

Ganti 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 ke 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 di tabel VENUE menjadi VENUESIZE:

alter table venue rename column venueseats to venuesize;

Jatuhkan kendala tabel

Untuk menjatuhkan batasan tabel, seperti kunci utama, kunci asing, atau batasan unik, pertama-tama temukan nama internal kendala. Kemudian tentukan nama kendala dalam perintah ALTER TABLE. Contoh berikut menemukan kendala untuk tabel CATEGORY, lalu menjatuhkan kunci utama dengan nama. category_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 KEY alter table category drop constraint category_pkey;

Mengubah kolom VARCHAR

Untuk menghemat penyimpanan, Anda dapat menentukan tabel 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 ke VARCHAR (300).

alter table event alter column eventname type varchar(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 menjadi pengkodean. AZ64

alter table t1 alter column c1 encode az64;

Pernyataan berikut mengubah pengkodean kompresi untuk kolom c2 dari pengkodean LZO ke pengkodean Byte-dictionary.

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 DISTYLE KEY DISTYLE

Contoh berikut menunjukkan bagaimana mengubah DISTYLE dan DISTYLE dari 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 menjadi. inv_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 menjadi. inv_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 ke 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 sortir majemuk atau tidak ada 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 sortir yang disisipkan ke kunci sortir majemuk.

alter table t1 alter sortkey(c0, c1);

Perintah berikut mengubah tabel untuk menghapus kunci sortir 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 t1 menjadi kunci sortir majemuk.

alter table t1 alter sortkey(c0, c1);

Ubah tabel menjadi ENCODE AUTO

Contoh berikut menunjukkan bagaimana mengubah tabel untuk ENCODE AUTO.

Definisi tabel untuk contoh ini berikut. Kolom c0 didefinisikan dengan jenis pengkodean AZ64, dan kolom c1 didefinisikan dengan jenis pengkodean LZO.

create table t1(c0 int encode AZ64, c1 varchar encode LZO);

Untuk tabel ini, pernyataan berikut mengubah pengkodean ke 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, encoding default ke ENCODE AUTO.

create table t2(c0 int, c1 varchar);

Untuk tabel ini, pernyataan berikut mengubah pengkodean kolom c0 ke LZO. Pengkodean tabel tidak lagi diatur ke ENCODE AUTO.

alter table t2 alter column c0 encode lzo;;

Ubah 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 datashares:

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 menetapkan tipe konjungsi RLS ke OR untuk tabel:

ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE OR;

Perintah berikut mengaktifkan RLS dan menetapkan tipe konjungsi RLS ke AND untuk tabel:

ALTER TABLE tickit_category_redshift ROW LEVEL SECURITY ON CONJUNCTION TYPE AND;
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.