3
介紹 我正在使用python cql library庫來訪問Cassandra 1.2數據庫(CQL 3.0)。我的表包含一個布爾值列如下:Python cql庫無法使用查詢替換更新布爾列
CREATE TABLE test (
id text,
value boolean,
PRIMARY KEY (id)
);
問題 當我嘗試執行這樣一個使用CQL庫查詢:
UPDATE test set value=True where id = 'someid'
並使用此代碼:
import cql
...
cql_statement = "UPDATE test set value=:value where id = :id"
rename_dict = {'id':'someid',
'value': True}
cursor.execute(cql_statement, rename_dict)
我得到這個錯誤:
Bad Request: Invalid STRING constant (True) for value of type boolean
好像CQL庫正試圖執行此:取而代之的是
UPDATE test set value='True' where id = 'someid'
:
UPDATE test set value=True where id = 'someid'
問題
是否有此或更好的辦法的任何解決辦法/庫使用? (我使用Cassandra 1.2與CQL 3.0 CFs,所以pycassa不是一個選項)
在此先感謝!
你的ID類型應該是一個整數而不是一個字符串。另外,您是否使用鏈接到的CQL驅動程序版本1.0.4或最新版本(1.4.0)? – Richard
嗨理查德,我正在使用最新的(1.4.0)。你能詳細說明不使用字符串作爲關鍵嗎? –
id是表定義中的一個int,但是您將它設置爲字符串'someid'。 – Richard