如何在sqlalchemy更新查询中添加自定义列名?

2024-04-20 02:57:10 发布

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

我有一个问题:

我在python方法中使用sqlalchemy,如下所示:

def update_icao_airport_id(self, airport_sys_id, project_sys_id, custom_column, value):
        """
        Updates Airport icao_airport_id value.
        :param airport_sys_id: airport_sys_id value you want to change
        :param project_sys_id: project_sys_id which is associated with Airport
        :param value: icao_airport_id new value
        :return: number of rows affected
        """
        query = AIRPORT.update(). \
            where(AIRPORT.c.airport_sys_id == airport_sys_id). \
            where(AIRPORT.c.project_sys_id == project_sys_id). \
            values(custom_column=value)
        result = self.execute_query(query)
        return result

我希望能够用方法中传递的参数替换“custom\u column”。我没有办法为列名工作,它只适用于'='或'=='后面的值,对于airport\u sys\u id、project\u sys\u id和value很好。你知道吗

例如,我想传入我的方法(1,2,name\u column,cat)并按如下方式接收:

query = AIRPORT.update(). \
            where(AIRPORT.c.airport_sys_id == 1). \
            where(AIRPORT.c.project_sys_id == 2). \
            values(name_column=cat)

我尽我所能寻找,但没有成功。我将非常感谢你的支持。当做。你知道吗


Tags: 方法selfprojectidparamvaluecustomsys
1条回答
网友
1楼 · 发布于 2024-04-20 02:57:10

我的例子有一个可行的解决方案:

我们可以使用字典:

.values({custom_column: value})

然后我可以在我的查询中这样使用它:

update_values = {custom_column: value}

query = AIRPORT.update(). \
        where(AIRPORT.c.airport_sys_id == airport_sys_id). \
        where(AIRPORT.c.project_sys_id == project_sys_id). \
        values(update_values)

相关问题 更多 >