Mysql
 sql >> Datenbank >  >> RDS >> Mysql

FUNCTION SUM existiert nicht

Sehen Sie sich den Auslöser an:

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 akzeptiert keine Leerzeichen zwischen Funktionsnamen und Klammern (es sei denn, Sie haben SQL_MODE=IGNORE_SPACE gesetzt, aber das führt zu anderen unerwünschten Nebeneffekten)

Sie können die SQL_MODE-Einstellung überprüfen, indem Sie Folgendes ausführen:

SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';

MySQL-Dokumentation dazu:link

Ein Beispiel:

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

Lösung:Leerzeichen entfernen

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