当我创建CQL表,是否有必要准确的是列的排列顺序不是在primary_key和NOT聚类列:
CREATE TABLE user ( a ascii, b ascii, c ascii, PRIMARY KEY (a) );
它等同于?
CREATE TABLE user ( a ascii, c ascii, <-- switched b ascii, <-- switched PRIMARY KEY (a) );
谢谢您的帮助
这两个陈述都会失败,因为:
额外的逗号.
您尚未提供主键定义.
假设你有那些固定的,那么答案仍然是"是的,它们是相同的".
Cassandra在创建表时将自己的订单应用于您的列.考虑这个表,因为我输入了它:
CREATE TABLE testorder ( acolumn text, jcolumn text, dcolumn text, bcolumn text, apkey text, bpkey text, ackey text, bckey text, PRIMARY KEY ((bpkey,apkey),bckey,ackey));
创建它之后,我将描述该表,以便您可以看到Cassandra已应用于列的顺序.
aploetz@cqlsh:stackoverflow> desc table testorder ; CREATE TABLE stackoverflow.testorder ( bpkey text, apkey text, bckey text, ackey text, acolumn text, bcolumn text, dcolumn text, jcolumn text, PRIMARY KEY ((bpkey, apkey), bckey, ackey) ) WITH CLUSTERING ORDER BY (bckey ASC, ackey ASC)
本质上,Cassandra将对分区键和聚类键(按PRIMARY KEY定义中的优先级排序)进行排序,然后列按升序排列.