A coluna gerada é uma das boas abordagens para a versão do MySql, que é 5.7.6 e superior.
Existem dois tipos de Colunas Geradas:
- Virtual (padrão) - a coluna será calculada dinamicamente quando um registro for lido de uma tabela
- Armazenado - a coluna será calculada quando um novo registro for gravado/atualizado na tabela
Ambos os tipos podem ter restrições NOT NULL, mas apenas uma Coluna Gerada armazenada pode fazer parte de um índice.
Para o caso atual, vamos usar a coluna gerada armazenada. Para implementar considerei que ambos os valores necessários para o cálculo estão presentes na tabela
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);
O valor aparecerá automaticamente na tabela e você poderá acessá-lo diretamente, observe também que sempre que você atualizar qualquer uma das colunas, o valor também será atualizado.