2011-08-19 56 views
4

設置cassandra(0.8.4)並使用插入進行測試並通過CLI進行選擇後,我轉到使用CQL的JDBC(1.0.3)。Cassandra CQL無法插入(輸入時沒有可行的替代方法)

這是哪裏,我遇到下面的代碼SQLException,任何想法?

Connection conn = DriverManager.getConnection(url);    

String sql = "INSERT INTO row (KEY, first, last, age) VALUES ('Jones', 'Jones', 'Lang', '32');"; // internal error 
Statement stmt = conn.createStatement(); 
stmt.execute(sql); 

例外:

java.sql.SQLException: line 1:22 no viable alternative at input 'first' 
at org.apache.cassandra.cql.jdbc.CassandraStatement.execute(CassandraStatement.java:160) 
at Cassandra.Insert.main(Insert.java:22) 

回答

7

first是CQL關鍵字,你需要把它放在引號。嘗試:

String sql = "INSERT INTO row ('KEY', 'first', 'last', 'age') VALUES ('Jones', 'Jones', 'Lang', '32');"; 
+0

Tryed那些CQL控制檯,但它並沒有爲我工作: 'cqlsh:testfamily> INSERT INTO標籤( '鍵', '第一', '最後', '年齡') VALUES('Jones','Jones','Lang','32'); 錯誤的請求:行1:42在輸入'age'處沒有可行的替代方案 – FelikZ

+0

此錯誤指的是解析問題。真正的根本問題是,它期待一個整數'年齡',但你傳遞一個字符串。 – BushMinusZero

相關問題