Generated Column ist einer der guten Ansätze für die MySql-Version 5.7.6 und höher.
Es gibt zwei Arten von generierten Spalten:
- Virtuell (Standard) - Die Spalte wird im laufenden Betrieb berechnet, wenn ein Datensatz aus einer Tabelle gelesen wird
- Gespeichert - Die Spalte wird berechnet, wenn ein neuer Datensatz in die Tabelle geschrieben / aktualisiert wird
Beide Typen können NICHT NULL-Einschränkungen haben, aber nur eine gespeicherte generierte Spalte kann Teil eines Index sein.
Für den aktuellen Fall verwenden wir eine gespeicherte generierte Spalte. Zur Implementierung habe ich berücksichtigt, dass beide für die Berechnung erforderlichen Werte in der Tabelle vorhanden sind
CREATE TABLE order_details (price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity));
INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);
Der Betrag wird automatisch in der Tabelle angezeigt und Sie können direkt darauf zugreifen. Beachten Sie außerdem, dass der Betrag bei jeder Aktualisierung einer der Spalten ebenfalls aktualisiert wird.