我有一个表名服务表,它有一些字段。字段有天的名称,如星期日、星期一、星期二等。。我想把postgres数据库表中的所有列值改成小写。
例如
“Sunday”更新为“Sunday”
我被问到了

update service_table set days=lower(days);

但它显示
提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。
注意:这个表有一些外键。

最佳答案

你可以在Django shell做这个

from django.db.models import F
from django.db.models.functions import Lower

service_table.objects.update(days=Lower(F('days'))

Djangoupdate()是用于直接更新的批量操作。
DjangoF()使引用模型字段值和使用它们执行数据库操作成为可能,而无需将它们从数据库中提取到Python内存中。
F()有助于提取模型字段值,然后处理到需求并使用update()将其保存回来

关于django - 将postgres中的列值更新为小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41296834/

10-13 04:43