Mysql
 sql >> Base de données >  >> RDS >> Mysql

LA FONCTION SOMME n'existe pas

Regardez le déclencheur :

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

MySQL n'accepte pas les espaces entre le nom de la fonction et les parenthèses (sauf si vous avez défini SQL_MODE=IGNORE_SPACE mais cela vous donne d'autres effets secondaires indésirables)

Vous pouvez vérifier le paramètre SQL_MODE en exécutant :

SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';

Documentation MySQL à ce sujet :lien

Quelques exemples :

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

Solution :Supprimer l'espace

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