ALTER TABLE
命令用於在建立表後更改表。 您可以使用ALTER
命令執行兩種操作:
語法:
ALTER (TABLE | COLUMNFAMILY) <tablename> <instruction>
您可以使用ALTER
命令在表中新增一列。 在新增列時,您必須知道列名稱與現有列名稱不衝突,並且表不使用緊湊儲存選項進行定義。
語法:
ALTER TABLE table name
ADD new column datatype;
範例:
現在舉個例子來說明在已經建立的名為「student
」的表上使用ALTER
命令。 這裡我們在名為student
的表中新增一個名為student_email的文字資料型別列。
使用以下命令後:
ALTER TABLE student ADD student_email text;
執行上面命令新增一個新列。 您可以使用SELECT
命令檢查它。
cqlsh> use yiibai_ks;
cqlsh:yiibai_ks>
cqlsh:yiibai_ks> select * from student;
student_id | student_city | student_fees | student_name | student_phone
------------+--------------+--------------+--------------+---------------
(0 rows)
cqlsh:yiibai_ks> ALTER TABLE student ADD student_email text;
cqlsh:yiibai_ks> select * from student;
student_id | student_city | student_email | student_fees | student_name | student_phone
------------+--------------+---------------+--------------+--------------+---------------
(0 rows)
cqlsh:yiibai_ks>
刪除一列
您還可以使用ALTER
命令從表中刪除現有的列。 在從表中刪除列之前,應該檢查表是否沒有使用緊湊儲存選項進行定義。
語法:
ALTER table name DROP column name;
範例:
讓我們舉個例子,從名為student
的表中刪除一個名為student_email
的列。
使用以下命令後:
ALTER TABLE student DROP student_email;
現在,您可以看到student
表中名為「student_email
」的列現在已被刪除。如果要刪除多個列,請使用「,
」分隔列名。
cqlsh:yiibai_ks> ALTER TABLE student ADD student_email text;
cqlsh:yiibai_ks> select * from student;
student_id | student_city | student_email | student_fees | student_name | student_phone
------------+--------------+---------------+--------------+--------------+---------------
(0 rows)
cqlsh:yiibai_ks> ALTER TABLE student DROP student_email;
cqlsh:yiibai_ks> select * from student;
student_id | student_city | student_fees | student_name | student_phone
------------+--------------+--------------+--------------+---------------
(0 rows)
cqlsh:yiibai_ks>
看這個例子:
這裡我們將刪除以下兩列:student_fees
和student_phone
。
ALTER TABLE student DROP (student_fees, student_phone);
輸出結果如下所示 -
cqlsh:yiibai_ks> ALTER TABLE student DROP student_email;
cqlsh:yiibai_ks> select * from student;
student_id | student_city | student_fees | student_name | student_phone
------------+--------------+--------------+--------------+---------------
(0 rows)
cqlsh:yiibai_ks> ALTER TABLE student DROP (student_fees, student_phone);
cqlsh:yiibai_ks> select * from student;
student_id | student_city | student_name
------------+--------------+--------------
(0 rows)
cqlsh:yiibai_ks>