Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

UPDATE com SUM() no MySQL


Infelizmente, você não pode atualizar uma tabela unida a ela mesma no MySQL .

Você precisará criar uma função como solução alternativa:
DELIMITER $$

CREATE FUNCTION `fn_get_sum`(_id INT) RETURNS int(11)
READS SQL DATA
BEGIN
      DECLARE r INT;
      SELECT  SUM(s_val)
      INTO    r
      FROM    table_name
      WHERE   id = _id;
      RETURN r;
END $$

DELIMITER ;

UPDATE  table_name
SET     par = fn_get_sum(id)