sql >> Databáze >  >> RDS >> Mysql

FUNCTION SUM neexistuje

Podívejte se na trigger:

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 nepřijímá mezery mezi názvem funkce a závorkou (pokud jste nenastavili SQL_MODE=IGNORE_SPACE, ale to vám dává další nežádoucí vedlejší efekty)

Nastavení SQL_MODE můžete zkontrolovat spuštěním:

SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';

Dokumentace MySQL o tomto:odkaz

Nějaký příklad:

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

Řešení:Odstraňte mezeru

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. Typy dat SQLite

  2. Aktualizujte sloupce hodnotami Null

  3. mysql najít nejmenší + jedinečné ID k dispozici

  4. chyba mysql 5.7 log-slow-queries