InvalidRequestError:无法评估 Python 中的当前条件:“无法评估 Select”。为synchronize_session指定'fetch'或False

问题描述 投票:0回答:1

尝试运行此代码时出现此错误:

query = delete(BannerLocalization).where(
        BannerLocalization.locale == locale,
        BannerLocalization.id == pk,
        BannerLocalization.banner_id.in_(
            select(
                Banner.id
            ).join(
                BannerLocalization
            ).where(
                BannerLocalization.locale == locale,
                BannerLocalization.id == pk,
                Banner.banner_type == BannerTypesEnum.EVENT
            )
        )
    )

sqlalchemy.exc.InvalidRequestError:无法评估Python中的当前条件:“无法评估Select”。为synchronize_session执行选项指定“fetch”或False。

有人知道出了什么问题吗?

python sql python-3.x sqlalchemy fastapi
1个回答
10
投票

我已经解决了这个问题:

设置

execution_options=immutabledict({"synchronize_session": 'fetch'})
session.execute

工作变体如下所示:

from sqlalchemy.util import immutabledict

await session.execute(
    query, 
    execution_options=immutabledict(
        {"synchronize_session": 'fetch'}
    )
)
© www.soinside.com 2019 - 2024. All rights reserved.