Python cassandra更新语句错误';输入不匹配';re';期待K#u WHERE';?
我尝试使用python客户端更新cassandra数据库,如下所示Python cassandra更新语句错误';输入不匹配';re';期待K#u WHERE';?,python,python-3.x,cassandra,cqlsh,Python,Python 3.x,Cassandra,Cqlsh,我尝试使用python客户端更新cassandra数据库,如下所示 def update_content(session, id, content) update_statement = """ UPDATE mytable SET content='{}' WHERE id={} """ session.execute(update_statement.format(content, id)) 它适用于大多数情况
def update_content(session, id, content)
update_statement = """
UPDATE mytable SET content='{}' WHERE id={}
"""
session.execute(update_statement.format(content, id))
它适用于大多数情况,但在某些情况下,内容是表单的字符串
content = "Content Message -'[re]...)"
这将导致调用应用程序时出现错误异常:为避免此类问题,应停止使用
.format
创建CQL语句,并开始使用允许您:
- 避免出现未转义特殊字符的问题,例如,
”
- 允许执行基本类型检查
- 获得更好的性能,因为查询将被解析一次,并且只有数据将通过网络发送
- 您将获得令牌感知的查询路由,这意味着查询将直接发送到保存分区数据的其中一个副本
prep_statement = session.prepare('UPDATE mytable SET content=? WHERE id=?')
def update_content(session, id, content):
session.execute(prep_statement, [content, id])
请注意,该语句只需准备一次,因为它包括到集群节点的往返过程,以执行查询解析
prep_statement = session.prepare('UPDATE mytable SET content=? WHERE id=?')
def update_content(session, id, content):
session.execute(prep_statement, [content, id])