将postgres中的列更新为小写

时间:2016-12-23 07:12:09

标签: django postgresql model

我有一个表名 service_table ,其中包含一些字段。字段的日期名称如星期日星期一星期二等。我想将postgres数据库表中的所有列值更改为小写。 例如 '星期日'更新为'星期日' 我写了一个查询

update service_table set days=lower(days);

但它显示

  

提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

注意:此表有一些外键。

1 个答案:

答案 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()将其保存回来