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

FUNÇÃO SOMA não existe


Veja o gatilho:
UPDATE Orders Set Paid =(Select SUM (Amount) From Payments AS p Where p.OrderID  = Orders.ID),PayMethod =new.PayMethod  WHere Orders.id = new.OrderID;

O MySQL não aceita espaços entre o nome da função e parênteses (a menos que você tenha definido SQL_MODE=IGNORE_SPACE, mas isso lhe dê outros efeitos colaterais indesejáveis)

Você pode verificar a configuração SQL_MODE executando:
SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';

Documentação do MySQL sobre isso:link

Algum exemplo:
mysql> select sum(5);
+--------+
| sum(5) |
+--------+
|      5 |
+--------+
1 row in set (0.00 sec)

mysql> select sum (5);
ERROR 1305 (42000): FUNCTION sum does not exist

Solução:remova o espaço
UPDATE Orders Set Paid =(Select SUM(Amount) From Payments AS p Where p.OrderID  = Orders.ID),PayMethod =new.PayMethod  WHere Orders.id = new.OrderID;