我有一个表名 service_table ,其中包含一些字段。字段的日期名称如星期日,星期一,星期二等。我想将postgres数据库表中的所有列值更改为小写。 例如 '星期日'更新为'星期日' 我写了一个查询
update service_table set days=lower(days);
但它显示
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
注意:此表有一些外键。
答案 0 :(得分:3)
你可以在Django shell中执行此操作
from django.db.models import F
from django.db.models.functions import Lower
service_table.objects.update(days=Lower(F('days'))
Django update()
是直接更新的批量操作。
Django F()
可以引用模型字段值并使用它们执行数据库操作,而无需将它们从数据库中拉出到Python内存中。
F()
有助于提取模型字段值,然后处理需求并使用update()
将其保存回来