ALTERTABLEADD和DROPCOLUMN例子 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

ALTERTABLEADD和DROPCOLUMN例子

下列範例會示範如ALTERTABLE何使用新增和刪除基本資料表資料行,以及如何刪除具有相依物件的資料行。

ADD然後DROP是一個基本的列

下列範例會將獨立的 FEEDBACK _ SCORE 欄新增至資料USERS表。這個資料欄只包含整數,而這個資料欄的預設值是NULL(沒有信用指數)。

首先,查詢 PG TABLE _ DEF 目錄資料表以檢視資料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

現在新增 feedback_score 資料欄:

alter table users add column feedback_score int default NULL;

從中選取 FEEDBACK _ SCORE 欄USERS以確認是否已新增:

select feedback_score from users limit 5; feedback_score ---------------- NULL NULL NULL NULL NULL

刪除列以恢復原始文件:DDL

alter table users drop column feedback_score;

捨棄具有相依物件的欄位

下列範例會捨棄具有相依物件的資料欄。結果會將相依物件一併刪除。

要開始,請再次將 FEEDBACK _ SCORE 列添加到USERS表格中:

alter table users add column feedback_score int default NULL;

接下來,從名為 USERS _ 的USERS表中創建一個視圖VIEW:

create view users_view as select * from users;

現在,嘗試從表中刪除 FEEDBACK _ SCORE USERS 列。這個DROP語句使用默認行為(RESTRICT):

alter table users drop column feedback_score;

Amazon Redshift 會顯示錯誤訊息,指出無法捨棄資料欄,因為有其他物件與其相依。

嘗試再次刪除 FEEDBACK _ SCORE 列,這次指定刪CASCADE除所有相關對象:

alter table users drop column feedback_score cascade;