在Apache Cassandra中添加列

时间:2017-06-02 08:51:34

标签: node.js apache cassandra

如何在node.js中检查Apache Cassandra中不存在该列?

我需要添加一个列,如果它不存在。

我已经读过,我必须先做一个选择,但如果我选择一个不存在的列,它将返回错误。

2 个答案:

答案 0 :(得分:2)

您可以使用system.schema_columns表格上的选择查询来检查列是否存在。

假设您在密钥空间test_table上有表test。现在您要检查列test_column如果退出与否。

使用以下查询:

SELECT * FROM system.schema_columns WHERE keyspace_name = 'test' AND columnfamily_name = 'test_table' AND column_name = 'test_column';

如果上述查询返回结果,则该列不存在。

答案 1 :(得分:2)

请注意,如果您使用的是Cassandra 3.x及更高版本,那么您需要从columns密钥空间的system_schema表进行查询:

aploetz@cqlsh:system_schema> SELECT * FROm system_schema.columns
     WHERE keyspace_name='stackoverflow'
       AND table_name='vehicle_information'
       AND column_name='name';

 keyspace_name | table_name          | column_name | clustering_order | column_name_bytes | kind    | position | type
---------------+---------------------+-------------+------------------+-------------------+---------+----------+------
 stackoverflow | vehicle_information |        name |             none |        0x6e616d65 | regular |       -1 | text

(1 rows)