Ich arbeite an einer Marktplatzplattform, auf der ich Benutzerbilanzen als Tabelle für Bilanzänderungen zusammen mit einem vorberechneten Wert in ihrer Benutzerzeile ablege. Auf diese Weise kann ich ihr Guthaben leicht überprüfen, aber in bestimmten Intervallen neu berechnen, um sicherzustellen, dass sie synchron bleiben. HierVerschiedene Tabellen aktualisieren, wenn Zeilen eingefügt werden
ist ein Beispiel dafür, was die Balance Änderungstabelle aussehen könnte:
| id | opening_balance | closing_balance | user_id |
|----|-----------------|-----------------|---------|
| 1 | 23.40 | 28.20 | 6 |
| 2 | 14.70 | 11.10 | 79 |
| 3 | 117.12 | 107.12 | 20 |
Wenn eine neue Zeile eingefügt wird, möchte ich die balance
Spalt auf dem user_id
Bezug auf den neu closing_balance
eingefügt aktualisieren.
Von dem, was ich online gefunden habe, habe ich die folgenden jedoch für MySQL statt Postgresql.
CREATE TRIGGER balance_update
AFTER INSERT ON balance_history
FOR EACH ROW
BEGIN
UPDATE users
SET balance = NEW.closing_balance
WHERE id = NEW.user_id;
END;
Es ist wie Postgresql sieht erfordert, dass Sie eine benannte Prozedur erstellen, bevor ein Trigger zu schaffen? Nicht sicher, der beste Weg, um dies zu konvertieren.
Siehe Beispiele im Handbuch https://www.postgresql.org/docs/current/static/plpgsql-trigger.html#PLPGSQL-TRIGGER-EXAMPLE –