将 postgres 中列的值更新为小写
Posted
技术标签:
【中文标题】将 postgres 中列的值更新为小写【英文标题】:Update value of a column in postgres into lower case 【发布时间】: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 命令提示符。只出现了提示。
【参考方案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()
将其保存回来
【讨论】:
来自新成员的好回答。如果你添加一个关于这里发生的事情的解释会更好。以上是关于将 postgres 中列的值更新为小写的主要内容,如果未能解决你的问题,请参考以下文章