如何在node.js中检查Apache Cassandra中不存在该列?
我需要添加一个列,如果它不存在。
我已经读过,我必须先做一个选择,但如果我选择一个不存在的列,它将返回错误。
答案 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)