我目前正在尝试使用以下代码将日期时间对象插入我的Cassandra数据库:
dt_str = '2016-09-01 12:00:00.00000'
dt_thing = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S.%f')
def insert_record(session):
session.execute(
"""
INSERT INTO record_table (last_modified)
VALUES(dt_thing)
"""
)
但是,我收到以下错误:
cassandra.protocol.SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 3:17 no viable alternative at input ')' (...record_table (last_modified) VALUES([dt_thing])...)">
我是Cassandra的新手,我不确定该怎么做。我基本上想做的是在数据库中添加一个现有的日期时间值,因为早期版本的代码正在寻找一个但它尚不存在(因此,为什么我要手动添加一个)。
我正在使用Python 2.7和Cassandra 3.0。
任何输入或如何解决都会很棒!
答案 0 :(得分:0)
我回答了similar question yesterday。但是一般的想法是,您需要定义一个准备好的语句。然后将您的dt_thing
变量绑定到它,就像这样:
dt_str = '2016-09-01 12:00:00.00000'
dt_thing = datetime.datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S.%f')
def insert_record(session):
preparedInsert = session.prepare(
"""
INSERT INTO record_table (last_modified)
VALUES (?)
"""
)
session.execute(preparedInsert,[dt_thing])
此外,我不建议将时间戳记用作单独的PRIMARY KEY(这是INSERT可以使用的唯一模型)。