2016-12-23 4 views
-1

Ich habe einen Tabellennamen service_table, die einige Felder haben. Ein Feld hat Tage Namen wie Sonntag, Montag, Dienstag etc .. Ich möchte den gesamten Spaltenwert in Postgres-Datenbanktabelle in Kleinbuchstaben ändern. zum Beispiel ‚Sonntag‘ update als ‚Sonntag‘ Ich bin eine Abfrage geschriebenAktualisiere Wert einer Spalte in Postgres in Kleinbuchstaben

update service_table set days=lower(days); 

aber es zeigt

Hinweis: Keine Funktion entspricht dem angegebenen Namen und Argumenttypen. Möglicherweise müssen Sie explizite Typumwandlungen hinzufügen.

Hinweis: Diese Tabelle hat einige Fremdschlüssel.

+0

zurück zu retten, was ist Datentyp Spalte für service_table –

+0

Was der ** Datentyp der Spalte ** genau ist ' Tage? – Patrick

+0

Bitte fügen Sie die ganze Fehlermeldung hinzu, nicht nur den Hinweisteil. – pozs

Antwort

3

Sie können diese

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

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

Django update() ist ein Massenvorgang für direkte Updates Shell in Django tun.

Django F() ermöglicht es, auf Modellfeldwerte zu verweisen und Datenbankoperationen mit diesen durchzuführen, ohne sie tatsächlich aus der Datenbank in Python-Speicher ziehen zu müssen.

F() hilft das Modellfeld Wert zu ziehen, dann auf die Anforderung verarbeiten und update() verwendet es

+1

Gute Antwort von einem neuen Mitglied. Es wäre noch besser, wenn Sie eine Erklärung hinzufügen würden, was hier passiert. – e4c5

Verwandte Themen