Ir para conteúdo
Fórum Script Brasil
  • 0

Relaçao de colunas


c4m1l0

Pergunta

Olá! Gostaria de saber como faço para uma coluna ser o resultado de operação entre outras colunas da mesma tabela. Por exemplo : Tenho uma coluna total que será a multiplicação da coluna qtde pela coluna valor. Ai sendo assim toda vez que altera a quantidade ou o valor a coluna total será mudada automaticamente.

Obrigado!!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, 'c4m1l0' ,

Em primeiro lugar, você não deveria perder tempo armazenando valore totalizadores. Estes tomam tempo e espaço no banco.

Em segundo lugar, a solução de seu problema, se você deseja manter uma coluna de total em sua tabela, passa pela criação de uma trigger de atualização (UPDATE).

Cuja criação seria mais ou manos assim:

DELIMITER $$;

DROP TRIGGER `test`.`Totaliza`$$

CREATE TRIGGER `test`.`totaliza` BEFORE UPDATE on `test`.`teste`
FOR EACH ROW BEGIN
   SET NEW.TOTAL = NEW.valor * NEW.quant;
END$$

DELIMITER;$$

No exemplo acima eu usei o banco test do próprio mysql e criei uma tabela chammada teste.

O operador NEW informa que estou trabalhando com os valores que ainda serão gravados.

O uso de BEFORE UPDATE é ppara que os dados sejam atualizados simultaneamente na tabela. Assim qualquer alteração em valor ou quant, imediatamente será afetada a coluna total.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...