sql >> Databasteknik >  >> RDS >> Mysql

FUNCTION SUM finns inte

Titta på triggern:

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 accepterar inte mellanslag mellan funktionsnamn och parentes (såvida du inte har ställt in SQL_MODE=IGNORE_SPACE men det ger dig andra oönskade biverkningar)

Du kan kontrollera SQL_MODE-inställningen genom att köra:

SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';

MySQL-dokumentation om detta:länk

Några exempel:

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ösning:Ta bort utrymme

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


  1. SQL inte lika med () Operator för nybörjare

  2. Återställ en databas i SQL Server 2017

  3. MysQl-fel:Ogiltigt parameternummer

  4. Firemonkey Mobile Application och fjärrstyrd MySQL