2016-04-28 3 views
0

Im Erstellen einer API, muss ich die Anzahl der Anforderungen für ein Benutzerkonto, so dass jedes Mal, wenn ich die SELECT-Anweisung aus der Tabelle API_USERS ausführen, ich möchte zählen inkrementiere eine Spalte (req_count) in der gleichen Tabelle um 1Aktualisieren Sie eine Spalte beim Abrufen von Datensatz aus der gleichen Tabelle n Postgres

so habe ich die Anzahl der Anfragen von diesem Benutzerkonto gemacht, ist es möglich, die Spalte beim Abrufen eines Datensatzes zu aktualisieren?

Antwort

0

Um einen Zähler in einer Benutzertabelle zu erhöhen (wenn ich gut Ihr Problem verstanden):

-- It will add 1 to request count for the user <your user id> 
UPDATE api_users 
    SET api_users.req_count = api_users.req_count + 1 
WHERE api_users.id = <your user id> 
    -- Add your validity condition here 
    -- ex: AND IS NOT banned 
-- And returns all the infos of the user (Acts somthing like SELECT * FROM updated_api_users) 
RETURNING *; 
+0

gut, was ich brauche, werde ich für jeden Benutzer Anfrage einen Datensatz aus meinem Tisch abgeholt werden, wenn zu sehen Sie sind gültige Benutzer oder nicht, wenn sie gültig sind, Ill holen ihre Details mit Select-Anweisung, was ich jetzt tun möchte, ist die Zählung erhöhen, wenn der Benutzer gültig ist – CodeRows

+0

Nun, es ist nicht sehr klar für mich, aber ich aktualisiert mein Beispiel indem Sie den RETURNING-Teil hinzufügen. Diese Anfrage sucht nach einem Benutzer mit der ID (Sie können natürlich auch andere Kriterien verwenden) und ** falls der Benutzer existiert ** oder mit Ihrer benutzerdefinierten WHERE-Bedingung wird req_count um 1 erhöht und alle Daten für den angegebenen Benutzer zurückgegeben. Wenn der Benutzer nicht gefunden wird, führt er keine Aktualisierung durch und gibt 0 Zeilen zurück. Diese Anfrage macht alles, was Sie mit mehreren getan haben. Fügen Sie einfach Ihre Gültigkeitskriterien in der WHERE-Bedingung hinzu. – firetonton

+0

Löst es dein Problem? Bitte markieren Sie den Thread als gelöst und die Antwort als hilfreich, wenn es ist. Vielen Dank – firetonton

Verwandte Themen