卡桑德拉改变了桌子

时间:2018-04-25 22:46:00

标签: cassandra cql

我在Cassandra有一张桌子说员工(身份证,电子邮件,角色,姓名,密码)只有id作为我的主键。

我想......

1。添加另一列(manager_id),其中包含默认值

我知道我可以在表中添加一列但是我无法通过CQL为该列提供默认值。我之后也无法更新manager_id的值,因为我需要知道id(分区键和值是随机生成的唯一值,我不知道)来更新行。有什么方法可以实现这个目标吗?

2。将此表重命名为all_employee。

我也知道不允许在cassandra中重命名表。所以我试图将表(employee)的数据复制到csv并从csv复制到新表(all_employee)并删除旧表(employee)。我通过一个带有cql查询的自动脚本来做这个,脚本工作正常,但如果它再次执行(我不能限制)将失败,因为表员工一旦被删除就不会在那里。基本上我正在寻找"如果存在" COPY查询中的子句在cql中不受支持。还有其他方法可以达到目的吗?

请注意,表格中的数据量非常小,因此性能不是问题。

1 个答案:

答案 0 :(得分:0)

#1

我不认为cassandra支持默认列。您需要从您的应用程序中执行此操作。每次插入行时写一些默认值。

#2

您可以在尝试从中复制之前检查该表是否存在。

SELECT your_table_name FROM system_schema.tables WHERE keyspace_name='your_keyspace_name';