讓我們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'周圍放置''',具體取決於類型等 –