当我想用如下python代码更新cassandra表中的set项时
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)
问题是{'?'}不能由prepared识别。我测试{'?'},但没有任何变化。
1条答案
按热度按时间pobjuy321#
更新:忘记了那个语法。。。
您需要使用以下语法:
并以set作为第一个参数进行绑定:
原始答案:
你不需要到处引用
?
字符-当绑定发生时,它正确地引用文本和其他类型。p、 请注意,如果您使用
{?}
,这意味着您总是在集合中插入一个元素。如果你需要更多,那么你只需要?
,并将python集作为参数传递。