Generated Column je jedním z dobrých přístupů pro verzi MySql, která je 5.7.6 a vyšší.
Existují dva druhy generovaných sloupců:
- Virtuální (výchozí) – sloupec bude vypočítán za běhu, když je arecord načten z tabulky
- Uloženo – sloupec bude vypočítán při zápisu/aktualizaci nového záznamu v tabulce
Oba typy mohou mít omezení NOT NULL, ale součástí indexu může být pouze uložený vygenerovaný sloupec.
Pro aktuální případ použijeme uložený vygenerovaný sloupec. Pro implementaci jsem uvážil, že obě hodnoty potřebné pro výpočet jsou uvedeny v tabulce
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);
částka se automaticky objeví v tabulce a můžete k ní přistupovat přímo, mějte také na paměti, že kdykoli aktualizujete některý ze sloupců, aktualizuje se také částka.