2013-08-04 20 views
0

我嘗試運行得到EOF錯誤以下的cqlsh創建表:隨着CQL3和比較器上創建表

CREATE TABLE measurements (metricid uuid, appid uuid, sourceid uuid, 
tagid uuid, day int, type int, PRIMARY KEY (metricid, appid, sourceid, 
tagid, day, type) WITH comparator=uuid); 

我收到一個錯誤失蹤處EOF「)」。

只要我不包含WITH比較器,我很好,但我需要比較器。

我試過了許多不同的組合,但似乎無法得到這一個正確。我究竟做錯了什麼?

編輯

我修改了查詢工作方式如下:

CREATE TABLE measurements (metricid uuid, appid uuid, sourceid uuid, 
tagid uuid, day int, type int, sequence timeuuid, 
PRIMARY KEY ((metricid, appid, sourceid, tagid, day, type), sequence); 

但我還是想知道什麼是不正確的與第一查詢。根據CQL3規範:http://www.datastax.com/docs/1.1/references/cql/CREATE_COLUMNFAMILY它應該工作。

+0

這個問題是如何脫離主題?它是一個關於Cassandra中使用的語言(CQL3)的具體問題(不是主觀的)。請向我解釋這個具體問題是如何脫離主題的,所以我可以避免在將來犯同樣的錯誤。 – AlexGad

+0

我投票結束。您提供的鏈接中沒有包含任何類似於不適合您的示例,即使您聲稱它確實如此。 「偏離主題」的原因包括一個子類別,該類別表示提問者應該表明他們已經試圖正確理解問題。該頁面上的示例清楚地顯示了括號外的「WITH」,並且您是否嘗試修復錯誤消息,然後您會得到的消息告訴您「比較器」屬性不正確。您可以通過閱讀您鏈接的頁面來解決問題。 – Theo

+1

對不起,但我恭敬地不同意你的意見。比較器屬性在1.0中似乎已被接受(http://www.datastax.com/docs/1.0/references/cql/CREATE_COLUMNFAMILY)。 1.1引用沒有提到比較器被丟棄,它只包含與1.0中相同的示例,所以我認爲包含了比較器。並且說我沒有嘗試修復這個錯誤是坦率的侮辱 - 我建立了一個樣本,這是我嘗試的一個變體,我在幾個小時內嘗試了很多。無論如何,我們必須同意不同意。謝謝您的幫助。 – AlexGad

回答

0

WITH應該放在圓括號的外面,就像在您鏈接到的頁面上的示例一樣。另外,comparator不是有效的CQL3選項(並且您指定了列的類型,因此無論如何它都會非常快),只需將其刪除即可。

+0

我在內外嘗試過。但是,您指出了正確的問題 - 比較器不是有效的CQL3選項,錯過了這一點。它在CQL2中被允許,我還沒有意識到它在CQL3中被刪除。 – AlexGad