sqlalchemy.exc.OperationalError错误:超过堆栈深度限制

2024-04-20 01:51:23 发布

您现在位置:Python中文网/ 问答频道 /正文

当我执行以下查询时,得到一个sqlalchemy.exc.OperationalError错误:

    present_keys = self.engine.execute(
        _sql.select(
            [self.table.columns.qid, self.table.columns.did],
            _sql.tuple_(self.table.columns.qid, self.table.columns.did).in_(
                [(row['qid'], row['did']) for row in rows]
            )
        )
    ).fetchall()

问题是,这个查询只适用于少量行,比如~5k,但是当我试着用大约50~100k的行运行它时,我得到了这个错误。你知道吗

我想查询本身是一个非常糟糕的方式来做我想要的。(我只是检查数据库中已经存在哪些行,以便将需要插入的行与需要更新的行分开)。你知道吗

我解决这个问题的最佳选择是什么?进行不同的查询?在PostgreSQL/psycopg2中增加某种设置?你知道吗


Tags: columnsinselfsqlsqlalchemy错误tablekeys