让我们a = "03bb2997_8b7a_4359_800d_7c14e5175bc9"
,我决定把它作为我的卡桑德拉的表名。因此,通过使用Python,卡桑德拉的桌子命名规则设计不佳
session.execute("""CREATE TABLE IF NOT EXISTS "%s" (date date, time time, input text, predicted_result text, PRIMARY KEY(date, time));""" % new_modelId)
拿笔记%S之间的双引号的,没有它,CQL会抱怨SyntaxException: line 1:35 mismatched character '_' expecting '-'
因为表名称不能以成功创建该表数字字符
开始。我通过cqlsh验证它。然而,当我尝试将数据插入到表与下面的代码:
session.execute("""INSERT INTO "%s" (date, time, input, predicted_result) VALUES(%s, %s, %s, %s);""",
(a, str(dateTime.date()), str(dateTime.time()),
json.dumps(json.loads(input_json)["0"]), json.dumps(json.loads(predicted_result_json)["0"])))
InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured table '03bb2997_8b7a_4359_800d_7c14e5175bc9'"
我试着用硬编码表的名称和它的作品。
session.execute("""INSERT INTO "03bb2997_8b7a_4359_800d_7c14e5175bc9" (date, time, input, predicted_result) VALUES(%s, %s, %s, %s);""",
(str(dateTime.date()), str(dateTime.time()),
json.dumps(json.loads(input_json)["0"]), json.dumps(json.loads(predicted_result_json)["0"])))
我不明白卡桑德拉表命名有什么问题。这是令人困惑和沮丧。
我尝试使用字符串构建方法(第二次),并且出现错误'SyntaxException:<服务器错误:code = 2000 [CQL查询中的语法错误] message =“行1:104不匹配的输入'-09'期待')'(... input,predicted_result)VALUES(2017 [-09] -19 ...)“> '不过,我很欣赏那种良好习惯的提醒! –
对,需要在VALUES部分的'%s'周围放置''',具体取决于类型等 –