我只是使用SQLAlchemy核心,并且无法获得允许我添加where子句的sql。我希望这个非常通用的更新代码可以适用于我的所有表格。这样做的目的是作为一个通用的插入/更新函数的一部分,对应于每个表格。通过这种方式,它允许极简短的测试代码和简单的CLI实用程序,可以仅传递所有参数和选项,而不需要每个表格单独的子命令的复杂性。
它需要进行一些调整才能达到那里,但现在应该可以很好地完成更新了。然而,虽然SQLAlchemy提到了生成式查询,但它并没有区分选择和更新。我已经查阅了SQLAlchemy文档、Essential SQLAlchemy、stackoverflow和几个源代码库,但没有找到任何信息。
它需要进行一些调整才能达到那里,但现在应该可以很好地完成更新了。然而,虽然SQLAlchemy提到了生成式查询,但它并没有区分选择和更新。我已经查阅了SQLAlchemy文档、Essential SQLAlchemy、stackoverflow和几个源代码库,但没有找到任何信息。
u = self._table.update()
non_key_kw = {}
for column in self._table.c:
if column.name in self._table.primary_key:
u.where(self._table.c[column.name] == kw[column.name])
else:
col_name = column.name
non_key_kw[column.name] = kw[column.name]
print u
result = u.execute(kw)
哪里出了问题——似乎无法识别where子句:
UPDATE struct SET year=?, month=?, day=?, distance=?, speed=?, slope=?, temp=?
FAIL
我找不到任何以这种方式构建更新的示例。有什么建议吗?