Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
ALTER TABLE ADD dan DROP COLUMN contoh
Contoh berikut menunjukkan bagaimana menggunakan ALTER TABLE untuk menambahkan dan kemudian menjatuhkan kolom tabel dasar dan juga cara menjatuhkan kolom dengan objek dependen.
TAMBAHKAN lalu JATUHKAN kolom dasar
Contoh berikut menambahkan kolom FEEDBACK_SCORE mandiri ke tabel USERS. Kolom ini hanya berisi integer, dan nilai default untuk kolom ini adalah NULL (tidak ada skor umpan balik).
Pertama, kueri tabel katalog PG_TABLE_DEF untuk melihat skema tabel USERS:
column | type | encoding | distkey | sortkey --------------+------------------------+----------+---------+-------- userid | integer | delta | true | 1 username | character(8) | lzo | false | 0 firstname | character varying(30) | text32k | false | 0 lastname | character varying(30) | text32k | false | 0 city | character varying(30) | text32k | false | 0 state | character(2) | bytedict | false | 0 email | character varying(100) | lzo | false | 0 phone | character(14) | lzo | false | 0 likesports | boolean | none | false | 0 liketheatre | boolean | none | false | 0 likeconcerts | boolean | none | false | 0 likejazz | boolean | none | false | 0 likeclassical | boolean | none | false | 0 likeopera | boolean | none | false | 0 likerock | boolean | none | false | 0 likevegas | boolean | none | false | 0 likebroadway | boolean | none | false | 0 likemusicals | boolean | none | false | 0
Sekarang tambahkan kolom feedback_score:
alter table users add column feedback_score int default NULL;
Pilih kolom FEEDBACK_SCORE dari USERS untuk memverifikasi bahwa kolom tersebut telah ditambahkan:
select feedback_score from users limit 5;
feedback_score ---------------- NULL NULL NULL NULL NULL
Jatuhkan kolom untuk mengembalikan DDL asli:
alter table users drop column feedback_score;
Menjatuhkan kolom dengan objek dependen
Contoh berikut menjatuhkan kolom yang memiliki objek dependen. Akibatnya, objek dependen juga dijatuhkan.
Untuk memulai, tambahkan kolom FEEDBACK_SCORE ke tabel USERS lagi:
alter table users add column feedback_score int default NULL;
Selanjutnya, buat tampilan dari tabel USERS_VIEW yang disebut USERS_VIEW:
create view users_view as select * from users;
Sekarang, coba jatuhkan kolom FEEDBACK_SCORE dari tabel USERS. Pernyataan DROP ini menggunakan perilaku default (RESTRICT):
alter table users drop column feedback_score;
Amazon Redshift menampilkan pesan kesalahan bahwa kolom tidak dapat dijatuhkan karena objek lain bergantung padanya.
Coba jatuhkan kolom FEEDBACK_SCORE lagi, kali ini tentukan CASCADE untuk menjatuhkan semua objek dependen:
alter table users drop column feedback_score cascade;