Lagerstandrechnung (abziehen bei Bestellung)

Kampfgummibaerlie

Datenbank-Guru
Beiträge
735
Also, was ich möchte, wäre, dass ich die bestellten Waren vom Lagerstand abziehe, habe bereits einen check constraint, dass man nicht "zuviele" bestellen kann, und mein Trigger, der bewirken soll, dass wenn ein Produkt bestellt wurde, es vom Lagerstand weggezogen werden sollte, sieht zurzeit so aus:

Code:
begin update lagerstand set lagerstand.lagerstand = lagerstand.lagerstand-versandt.stück from versandt where lagerstand.produkt = versandt.produkt; return new; end;

Bekomme jedoch eine Fehlermeldung, wenn ich was in Versandt einfügen will, dass er einen zusammengesetzten Typen möchte.
Wie sollte ich das verstehen? zusammengesetzter Typ?

Mir ist klar, Google kann mir helfen, aber ich würde in einer Stunde wegfahren, und frage hier gerne nach, weil es auch andere interessieren könnte.

Wie könnte ich dieses Problem lösen?
Oder ist mein Trigger falsch eingebaut?
Würde zurzeit so aussehen:
Code:
create trigger less_lager after insert on versandt execute procedure less_lagerstand();

Wäre dankbar, wenn mir auch hierbei geholfen werden kann, bin eh schon so ruhig hier :D

Die entsprechende Fehlermeldung, die ich bekomme:
ERROR: FEHLER: kann Feld »lagerstand« in Spalte »lagerstand« nicht setzen, weil ihr Typ integer kein zusammengesetzter Typ ist

Ihr dürft meine tollen Ideen natürlich auch auf den Kopf stellen, und mir irgendwas von anderen Möglichkeiten vorschlagen, wie ich es lösen könnte.
 
Werbung:
Moin moin,

vorweg ich nix viel kennen postgresql :D

Aber: bitte mich korrigieren wenn ich falsch liege, aber ich finde dieses Statement recht merkwürdig...

"
begin
update lagerstand
set lagerstand.lagerstand = lagerstand.lagerstand-versandt.stück <-- besagt diese Zeile nicht das du die Spalte "lagerstand" von der Tabelle "lagerstand" mit dem Wert der Spalte "stück" von der Tabelle "[lagerstand-versandt]" aus dem Schema "lagerstand" updaten möchtest?...
from versandt
where lagerstand.produkt = versandt.produkt;
return new;
end;
"

Btw. eine andere Frage: @Kampfgummibaerlie: Gibt es einen Grund warum sofort bei einer Bestellung die Lagermenge eines Artikel´s dezimiert wird? Warum geschieht dies nicht bei Versandt bzw. beim abarbeiten im Warenausgang? Wenn jetzt ein Artikel bestellt wird und diese Bestellung, warum auch immer, 7 Minuten später storniert wird muss eine weitere DB-Operation stattfinden neben deiner Lagerstandsrechnung...

Viele Grüße :)
 
Moin moin,

vorweg ich nix viel kennen postgresql :D

Aber: bitte mich korrigieren wenn ich falsch liege, aber ich finde dieses Statement recht merkwürdig...

"
begin
update lagerstand
set lagerstand.lagerstand = lagerstand.lagerstand-versandt.stück <-- besagt diese Zeile nicht das du die Spalte "lagerstand" von der Tabelle "lagerstand" mit dem Wert der Spalte "stück" von der Tabelle "[lagerstand-versandt]" aus dem Schema "lagerstand" updaten möchtest?...
from versandt
where lagerstand.produkt = versandt.produkt;
return new;
end;
"

Btw. eine andere Frage: @Kampfgummibaerlie: Gibt es einen Grund warum sofort bei einer Bestellung die Lagermenge eines Artikel´s dezimiert wird? Warum geschieht dies nicht bei Versandt bzw. beim abarbeiten im Warenausgang? Wenn jetzt ein Artikel bestellt wird und diese Bestellung, warum auch immer, 7 Minuten später storniert wird muss eine weitere DB-Operation stattfinden neben deiner Lagerstandsrechnung...

Viele Grüße :)

Ich denke, du kennst "Meine Mission" nicht vollständig, aber meine Mutter hat ein kleines "Nähcafe" geöffnet, und ich würde ihr gerne für das Ganze eine funktionstüchtige Datenbank/Homepage einrichten, wobei ich von unserem lieben mr. Elephant (Akretschmer) von PostgreSQL "überzeugt" wurde, und es somit auch verwende, und mich quasi schon garnichtmehr davon trennen möchte ;)

Wie oben schon steht, wäre es ein "Nähcafe", sprich sie kauft Stoffe, welche jeweils limitiert sind, und verkauft diese wiederum in ihrem Cafe (wo auch Nähmaschinen stehen, die man mieten kann).

Ich war, wie ich hierher kam jedenfalls in Sachen SQL in den "höheren Fähigkeiten" von SQL vollständiger Anfänger, von daher ist auch mein Leben bisher nicht wirklich nach den Vorstellungen verlaufen, und ja, mache sowas eher gerne Hobby-Mäßig, damit ich wenigstens irgendwas zu tun habe ;)

Aber auch danke dir, also müsste ich noch eine Tabelle mit "Einkaufswagen" erstellen :D
 
Werbung:
Zurück
Oben