Cassandra修改表
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>