sqlalchemy中没有ARRAY字段更新的文档。Idk,如何在sqlachemy orm中通过索引更新位置。只有可能更新整个数组,但我需要更新条目中的单个元素。
我在postgres文档中找到了一个例子:
SELECT * FROM sal_emp;
name | pay_by_quarter | schedule
-------+---------------------------+-------------------------------------------
Bill | {10000,10000,10000,10000} | {{meeting,lunch},{training,presentation}}
Carol | {20000,25000,25000,25000} | {{breakfast,consulting},{meeting,lunch}}
UPDATE sal_emp SET pay_by_quarter[4] = 15000
WHERE name = 'Bill';
但是我没有找到如何在.values
方法中切片或索引,只有关键字参数支持。
# sqlalchemy
update(SalEmp).values(pay_by_quarter=???).where(SalEmp.name=='Bill')
# Can't do like this:
update(SalEmp).values(SalEmp.pay_by_quarter[4]=15000).where(SalEmp.name=='Bill')
1条答案
按热度按时间2j4z5cfb1#
您可以通过传递一个dict(如
{SalEmp.pay_by_quarter[4]: 15000}
到values
)来实现这一点。ORM查询如下所示
update(SalEmp).values({SalEmp.pay_by_quarter[4]: 15000}).where(SalEmp.name=='Bill')