Ich versuche, eine bedingte Aktualisierung auf meiner Website zu tun. Wenn ein Benutzer auf eine bestimmte Verknüpfung klickt, inkrementiert sich eine globale Zählervariable in der Datenbank.Bedingte Update-Anweisung in PSQL
Die Komplikation ist, dass, wenn die Anzahl der Zähler die Anzahl der Websites, die ich habe, ich den Zähler auf 1 zurückgehen muss. Ich habe eine Update-Anweisung für diese, aber es funktioniert nicht und ich kann nicht sehen, warum.
#Increment global counter, set it back to one when it exceeds the number of websites on record
cursor.execute("UPDATE url_reroute_counter SET counter_num = "+
" CASE"+
" WHEN counter_num>(SELECT count(*) FROM url_reroute_targeturl)"+
" THEN counter_num = 1"+
" ELSE"+
" counter_num = counter_num+1"+
" END"+
" WHERE name_of_counter = 'url_count'")`
diesen Code Rennen wird mir die folgende Ausnahme:
django.db.utils.ProgrammingError: column "counter_num" is of type integer but expression is of type boolean
LINE 1: UPDATE url_reroute_counter SET counter_num = CASE WHEN coun...
^
HINT: You will need to rewrite or cast the expression.
ich zur Verwendung von hier nicht verwendet conditionals in jeder SQL-Sprache so jede hlep geschätzt wird.
Ich denke, das geeignetere Tag ist postgresql – e4c5