![](/img/trans.png)
[英]How to use prepared statement on materialized view in python Cassandra driver?
[英]Problem with python driver in Cassandra when use prepared statements
當我想使用 python 代碼更新 Cassandra 表中的設置項時,如下所示
ps = session.prepare( """ UPDATE test,tbl SET val = val + {'?'} where name = ? and id = ?;""" )
bs = bind(ps, ['name', 'name', 1])
session.execute(bs)
我有錯誤
Too many arguments provided to bind() (got 3, expected 2)
問題是 {'?'} 無法通過准備識別。 我測試 {\'?\'} 但沒有任何改變。
更新:忘記了那個語法......
您需要使用以下語法:
UPDATE test,tbl SET val = val + ? where name = ? and id = ?;
並將 set 綁定為第一個參數:
bs = bind(ps, [set(['name']), 'name', 1])
原答案:
你不需要加引號?
字符 - 當綁定發生時,它會正確引用文本和其他類型。
PS 請注意,如果您使用{?}
,這意味着您始終將一個元素插入集合中。 如果你需要更多,那么你需要使用 just ?
,並將 python 集作為參數傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.