>问题:
我目前正在尝试使用以下代码将日期时间对象插入我的 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。
任何输入或如何做到这一点都会很棒!
我昨天回答了一个类似的问题。 但一般的想法是,您需要定义一个准备好的语句。 然后将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])
另外,我不建议使用时间戳作为单独的主键(这是该插入唯一可用的模型(。