Generated Column is een van de goede benaderingen voor MySql-versie die 5.7.6 en hoger is.
Er zijn twee soorten gegenereerde kolommen:
- Virtueel (standaard) - kolom wordt direct berekend wanneer een record uit een tabel wordt gelezen
- Opgeslagen - kolom wordt berekend wanneer een nieuw record wordt geschreven/bijgewerkt in de tabel
Beide typen kunnen GEEN NULL-beperkingen hebben, maar alleen een opgeslagen gegenereerde kolom kan deel uitmaken van een index.
Voor het huidige geval gaan we de opgeslagen gegenereerde kolom gebruiken. Om te implementeren heb ik overwogen dat beide waarden die nodig zijn voor de berekening aanwezig zijn in tabel
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);
bedrag verschijnt automatisch in de tabel en u hebt er direct toegang toe. Houd er ook rekening mee dat wanneer u een van de kolommen bijwerkt, het bedrag ook wordt bijgewerkt.