mysql - 功能 "SUM does not exist"

标签 mysql .net

当我执行下面的脚本时,我使用的是 mysql 5.5.11

INSERT INTO payments(created,  Amount,  user,  Remarks,  orderid,  paymethod) 
VALUES('2016-09-03', 0.0, 'admin', '', 4, 'Cash');

我收到错误

SQL Error: FUNCTION mydb.SUM does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual

这是表模式

CREATE TABLE payments (
  ID         int AUTO_INCREMENT NOT NULL,
  OrderID    int,
  Amount     decimal(11,2),
  Created    varchar(20),
  Remarks    varchar(160),
  user       varchar(60),
  PayMethod  varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci,
  /* Keys */
  PRIMARY KEY (ID)
) ENGINE = InnoDB;

可能是什么原因导致的错误

这是附在表上的触发器

BEGIN
  /* Trigger text */
  UPDATE Orders Set Paid =(Select SUM (Amount) From Payments AS p Where p.OrderID  = Orders.ID),PayMethod =new.PayMethod  WHere Orders.id = new.OrderID;
   UPDATE Orders Set Bal = Total - Paid  WHere Orders.id = new.OrderID;
END

最佳答案

查看触发器:

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 不接受函数名和括号之间的空格(除非您设置了 SQL_MODE=IGNORE_SPACE 但这会给您带来其他不良副作用)

您可以通过运行来检查 SQL_MODE 设置:

SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';

关于此的 MySQL 文档:link

一些例子:

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

解决办法:去掉空格

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 - 功能 "SUM does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39309859/

相关文章:

PHP Mysql 在 ~60 秒后消失

C# 线程 : Console application in new thread is invisible

.net - ClickOnce - 文件已存在错误 - 为什么 ClickOnce 尝试将 DLL 文件复制两次?

php - 是否可以使用 php/html 编写的应用程序页面将文件上传到 GCP 上的计算引擎?

MySQL:使用 "group by"的慢查询 - 卡在 "Copying to tmp table"

javascript - Knexjs 将 mysql 时间戳、日期时间列作为 Javascript 日期对象返回

c# - linq to entities 无法识别方法

mysql - 使用 MySQL View 提高性能

c# - .net 相当于 Delphi QuotedStr 函数

c# - 如何异步使用 HttpWebRequest (.NET)?