2
我有一大组值V,其中一些可能存在于表T中。我想在表中插入那些尚未插入的值。到目前为止,我的代码是:使用SQLAlchemy批量选择
for value in values:
s = self.conn.execute(mytable.__table__.select(mytable.value == value)).first()
if not s:
to_insert.append(value)
我觉得这样的运行速度比应该慢。我有几个相关的问题:
- 有没有一种方法来构建一个select语句,这样你提供一个列表(在这种情况下,“价值”),其与SQLAlchemy的匹配列表,它记录的响应?
- 这段代码在构造select对象时过于昂贵吗?有没有办法构造单个select语句,然后在执行时进行参数化?
嗯,我喜欢这个主意;一个问题是,我认为价值太大,最大限度地减少了这种说法。我需要制作一张中间桌子吗? – muckabout 2010-03-13 15:14:57
如果数据来自数据库,那么您可以在数据库中完全执行该操作。但是,如果没有,您可以通过切片值列表轻松地对每1000个项目进行批量处理。:)不需要从本地已有的东西创建临时表。 – Wolph 2010-03-13 15:20:38
好点,那有效! – muckabout 2010-03-13 16:54:37