Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 功能“;“总和不存在”;_Mysql_.net - Fatal编程技术网

Mysql 功能“;“总和不存在”;

Mysql 功能“;“总和不存在”;,mysql,.net,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错误:函数mydb.SUM不存在。检查“函数名” 参考手册中的“解析和解析”部分 这是表模式 CREATE TABLE payments ( ID

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

INSERT INTO payments(created,  Amount,  user,  Remarks,  orderid,  paymethod) 
VALUES('2016-09-03', 0.0, 'admin', '', 4, 'Cash');
我犯了一个错误

SQL错误:函数mydb.SUM不存在。检查“函数名” 参考手册中的“解析和解析”部分

这是表模式

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\u MODE=IGNORE\u SPACE,但这会给您带来其他不希望的副作用)

您可以通过运行以下命令来检查SQL_模式设置:

SHOW GLOBAL VARIABLES LIKE 'SQL_MODE';
MySQL关于此的文档:

例如:

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;

删除
SUM
之间的空格(
如下:
选择SUM(Amount)从付款中

该表上有任何触发器吗?除了@Hamlet所问的以外…
用户
在大多数数据库管理系统中是一个保留字。如果要使用该名称的列,每次使用时都必须正确地转义它。如果是我,我会为该列找到一个不同的名称,以避免麻烦和ext“这会给你带来很大的麻烦。@HamletHakobyan,是的,我附加了一个触发器,告诉sqlyog忽略空格,因为每次我们单击format sql QueryforMe时,在sum和count之后添加空格,在“,”和“,”-之间缺少空格,mysql命令行客户端的语法非常严格