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 zyiz_ks;
cqlsh:zyiz_ks>
cqlsh:zyiz_ks> select * from student;

 student_id | student_city | student_fees | student_name | student_phone
------------+--------------+--------------+--------------+---------------

(0 rows)
cqlsh:zyiz_ks> ALTER TABLE student ADD student_email text;
cqlsh:zyiz_ks> select * from student;

 student_id | student_city | student_email | student_fees | student_name | student_phone
------------+--------------+---------------+--------------+--------------+---------------

(0 rows)
cqlsh:zyiz_ks>

删除一列

您还可以使用ALTER命令从表中删除现有的列。 在从表中删除列之前,应该检查表是否没有使用紧凑存储选项进行定义。

语法:

ALTER table name  DROP column name;

示例:

让我们举个例子,从名为student的表中删除一个名为student_email的列。

使用以下命令后:

ALTER TABLE student DROP student_email;

现在,您可以看到student表中名为“student_email”的列现在已被删除。如果要删除多个列,请使用“”分隔列名。

cqlsh:zyiz_ks> ALTER TABLE student ADD student_email text;
cqlsh:zyiz_ks> select * from student;

 student_id | student_city | student_email | student_fees | student_name | student_phone
------------+--------------+---------------+--------------+--------------+---------------

(0 rows)
cqlsh:zyiz_ks> ALTER TABLE student DROP student_email;
cqlsh:zyiz_ks> select * from student;

 student_id | student_city | student_fees | student_name | student_phone
------------+--------------+--------------+--------------+---------------

(0 rows)
cqlsh:zyiz_ks>

看这个例子:

这里我们将删除以下两列:student_feesstudent_phone

ALTER TABLE student DROP (student_fees, student_phone);

输出结果如下所示 -

cqlsh:zyiz_ks> ALTER TABLE student DROP student_email;
cqlsh:zyiz_ks> select * from student;

 student_id | student_city | student_fees | student_name | student_phone
------------+--------------+--------------+--------------+---------------

(0 rows)
cqlsh:zyiz_ks> ALTER TABLE student DROP (student_fees, student_phone);
cqlsh:zyiz_ks> select * from student;

 student_id | student_city | student_name
------------+--------------+--------------

(0 rows)
cqlsh:zyiz_ks>

上一篇:Cassandra创建表

下一篇:Cassandra删除表

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程