Frage von f0xxyy8, 35

Datenbanken PL/SQL Update Trigger?

Hallo,
verzweifel hier grad weil ich einen Update Trigger schreiben muss aber nicht genau weiß wie. Um es mal genauer zu beschreiben: Wenn ein Kunde eine Bestellung aufgibt zählt ein Wert der sich "count" nennt in der Tabelle Kunde hoch. Also jedes mal wenn er bestellt +1 sozusagen. Und wenn er 5 Bestellungen erreicht hat (also dann 5 counts hat), kriegt er einen Gutschein. Danach wird der count auf 0 zurück gesetzt. Ich weiß aber leider nicht wie ich das implementieren soll. Hab mir auch schon einiges dazu angeschaut aber kriege es nicht hin. Hoffe jemand kann mir helfen. LG

Antwort
von Alextoexplain, 23

Hello there,

also für MySQL kann ichs mal skizzieren. Wir gehen davon aus, dass es eine Tabelle einkauf gibt, die über den Schlüssel kundeid mit der Tabelle Kunde verknüpft ist:

DELIMITER //
CREATE TRIGGER "shoppen"
AFTER INSERT ON einkauf
FOR EACH ROW
BEGIN
UPDATE kunden SET count = count + 1
WHERE kunde.kundeid = new.kundeid;
IF(kunden.count) >= 5 THEN
UPDATE kunden SET count = 0
WHERE kunde.kundeid = new.kundeid;
UPDATE kunden SET gutschein = gutschein +1
WHERE kunde.kundeid = new.kundeid;
ENDIF
END
DELIMTER ;


Schau mal ob es so ungefähr hinkommt.


MfG

Alex

Kommentar von f0xxyy8 ,

Hey vielen Dank! Ich glaube mit dem Code könnte es wirklich klappen, kann es leider erst morgen testen :)

Antwort
von wotan38, 13

Ich frage mich, wozu man in diesem Fall überhaupt einen Trigger braucht. Man kann das Hochzählen doch gleich zum Zeitpunkt der Bestellung gemeinsam mit dem Insert durchführen. Oder geht das mit der hier verwendeten Entwicklungsumgebung nicht? Gibt es einen bestimmten Grund für die Verwendung eines Triggers?

Kommentar von f0xxyy8 ,

Der Grund ist ein Projekt fürs Studium. Mussten einen einfachen Insert und Update Trigger erstellen :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten