Postgres, sql: Inkrementierung allgemein und bis zu einem bestimmten Wert

al_si

Mitglied
Folgende Situation

(Ich nutze PostgreSQL 9.2)

2 tables:

Punktekarte
id (integer),
benoetigte_punkte (integer)

Nutzer_Punktekarte
punktekarte_id (integer) ,
punkte (integer)

2 Fragen:
Durch ein INSERT INTO Nutzer_Punktekarte.... wuerde ich gerne den Wert von punkte einfach nur um 1 erhoehen (inkrementieren), allerdings nur bis er die Anzahl der benoetigte_punkte gesammelt hat.

1.Wie kann ich ueberhaupt eine Inkrementierung in sql ausdruecken, also das der aktuelle wert von punkte um 1 erhoeht wird ohne das ich erst per MAX auslese?
2. Und wenndas moeglich ist, kann ich es auch mit der anderen Bedingung (s.o.) vereinen?

Ich bin fuer jede Hilfe dankbar.
 
Hi,

eine incrementierung erhälst du in PostgreSQL mit dem Datentyp Serial. Dies würde dem auto_increment von MySQL entsprechen.

Wegen dem zweiten kann ich dir nicht helfen. Evtl. nach jedem Insert INTO die Punkte extra abfragen und dann halt entsprechend weitermachen oder nicht. Eine schönere Lösung fällt mir da auch nicht ein.
 
Serial ist mir bekannt, aber kann ich damit auch die Höchstgrenze so einstellen, dass er den Wert von benoetigte_punkte aus Punktekarte nicht überschreitet? Bzw. Bei Überschreitung eine neue Punktekarte anlegt.
 
Ob bei serial eine Höchstgrenze eingestellt werden kann, weiss ich nicht. Aber evtl. könntest du mit dem CASE-Ausdruck arbeiten, was in etwa einem if/else entspricht. Dadurch lassen sich Werte abfragen und dementsprechend darauf reagieren, wenn z.B. ein bestimmter Wert erreicht ist.
 

Neue Themen


Zurück
Oben