【问题标题】:Update value of a column in postgres into lower case将 postgres 中列的值更新为小写
【发布时间】:2017-05-08 21:17:41
【问题描述】:

我有一个表名 service_table 有一些字段。一个字段的日期名称如 Sunday、Monday、Tuesday 等。我想将 postgres 数据库表中的所有列值更改为小写. 例如 'Sunday' 更新为 'sunday' 我写了一个查询

update service_table set days=lower(days);

但它显示

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

注意:这个表有一些外键。

【问题讨论】:

  • service_table 列的数据类型是什么
  • 列days的确切数据类型是什么?
  • 请添加整个错误消息,而不仅仅是提示部分。
  • 数据类型为:svc_days = ArrayField(models.CharField(max_length=10), size=7)
  • 嘿!我正在使用 postgres 命令提示符。只出现了提示。

标签: django postgresql model


【解决方案1】:

您可以在 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() 将其保存回来

【讨论】:

  • 来自新成员的好回答。如果你添加一个关于这里发生的事情的解释会更好。
猜你喜欢
  • 2019-11-27
  • 1970-01-01
  • 2021-04-11
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多