我想知道是否在CQL3中有一个查询,允许您获取具有静态架构的特定列家族的列名称?
感谢提前:)卡桑德拉:获取列家族的列名称?
回答
您可以使用system
密钥空间要做到这一点:
SELECT column_name FROM system.schema_columnfamilies
WHERE keyspace_name = 'testks' AND columnfamily_name = 'testcf';
产出cqlsh(使用cql3):
column_name
-------------
password
您可以制定出关键该列使用:
SELECT key_aliases FROM system.schema_columnfamilies WHERE keyspace_name='testks'
AND columnfamily_name='testcf';
输出:
key_aliases
--------------
["username"]
如果你想获得一个特定的表的列名与CQL3那么我想试试这个
select * from system.schema_columns WHERE keyspace_name='#KS' AND columnfamily_name='#CF' allow filtering;
注:keyspace_name在where子句是可选。它主要用于更好的过滤目的(比如说,在多个按键空间中同名的表)
非常感谢!其实我不知道女巫的答案,以验证这两个是正确的和有益的,再次感谢;) – user2090879
其实这适用于Cassandra 2,CQL3但不是上述,获取所有列名... –
更改*为column_name,我只会得到列系列中所有列的名称 –
从我最近的测试中,我们应该使用schema_columns而不是schema_columnfamilies来获取所有列名。 schema_columnfamilies可用于获取表名称。
获得列名:
SELECT column_name FROM system.schema_columns WHERE keyspace_name = 'KeySpaceName' AND columnfamily_name = 'TableName';
取得列的姓氏,即表名:
select columnfamily_name from system.schema_columnfamilies where keyspace_name='KeySpaceName';
- 1. 列家庭,超级列家族,卡桑德拉超级列
- 2. 递增卡桑德拉计数器列家族的NodeJS
- 3. 更改列家族在卡桑德拉在多节点拓扑
- 4. 卡桑德拉列家庭限制
- 5. 使用Astyanax列出在卡桑德拉列族的所有行
- 6. 获取卡桑德拉
- 7. 连字符列名卡桑德拉
- 8. 卡桑德拉赫克托:如何检索列家族的所有行?
- 9. 超列族的副索引的任何替代卡桑德拉
- 10. 卡桑德拉复合柱族
- 11. 不能修改的CompositeType比较上卡桑德拉列族
- 12. 计数卡桑德拉列族中的用户数量?
- 13. 随机列取中卡桑德拉
- 14. 卡桑德拉:如何模型列家族执行相交样查询
- 15. 插入卡桑德拉列族与复合键
- 16. 卡桑德拉:创建的CompositeType列
- 17. 限制卡桑德拉的列数
- 18. 卡桑德拉:柱族VS超级柱族
- 19. 卡桑德拉非反家庭
- 20. 的卡桑德拉
- 21. 赫克托+卡桑德拉:获取
- 22. 从卡桑德拉计数器列家庭删除整个行
- 23. 卡桑德拉:激活行缓存列家庭似乎失败
- 24. 我设置一个计数器列家庭卡桑德拉
- 25. 卡桑德拉显示列值
- 26. 卡桑德拉。默认列值
- 27. 卡桑德拉:什么是子列
- 28. 卡桑德拉Astyanax复合列
- 29. 卡桑德拉和插入浮动列
- 30. 序列化BoundStatement卡桑德拉
非常感谢,这是真正的帮助! – user2090879
@Lyuben我可以在与列的切片类似的列名上做一个范围吗?例如,如果日期是列名,则在两个日期之间获取列名称 – Peter