【问题标题】:Invalid use of group function with insert SQL通过插入 SQL 无效使用组函数
【发布时间】:2018-11-28 15:55:21
【问题描述】:

我正在对 MariaDB 数据库进行简单的插入,这只是一个简单的插入,这就是查询。

Insert into serie (nombre,carpetas,fecha_ingreso) 
values ('asdads',1,'2018-11-28');

该表有一个自动增量主键,我尝试插入的字段只是一个简单的字符串、一个数字和一个日期,并且这些字段显然与该表应该接收的字段匹配。

但是查询没有通过,而是我得到了这个错误。

错误代码:#1111 组函数使用无效

我已经在网上搜索了它,但没有出现与插入查询相关的任何内容,老实说,我只是没有看到查询中的语法错误。

这可能是我遗漏的一些明显的东西。

编辑

表有这个触发器。

CREATE TRIGGER `after_serie_inserted` AFTER INSERT ON `serie`
FOR EACH ROW BEGIN

DECLARE last_serie_id int;
DECLARE last_caja_id int;

set last_serie_id = MAX(serie.idserie);
set last_caja_id = MAX(caja.idcaja);


INSERT INTO caja_serie (caja_id,serieDoc_id) VALUES 
(last_caja_id,last_serie_id);


END

【问题讨论】:

  • 您确定这是您正在运行的唯一查询吗?它不是一些更大的查询的一部分吗?或者可能在此查询之前运行其他一些查询并导致错误?
  • 我同意@MadhurBhaiya 我怀疑查询会导致error code: #1111 Invalid use of group function 你甚至没有在该查询中使用MIN()MAX()COUNT()SUM() 等聚合函数
  • 不是由发布的代码引起的,但您在意甲上有任何触发器吗?
  • 是的,我确实有那个表的触发器。但这对应该在执行该查询后运行的查询有何影响
  • 既然你注意到了,我会指定该表有一个触发器,我还会添加触发器的代码。

标签: mysql mariadb


【解决方案1】:
set last_serie_id = MAX(serie.idserie);

-->

SELECT MAX(idserie) INTO last_serie_id FROM serie;

【讨论】:

  • 谢谢,帮了大忙,现在我的项目在数据库方面工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 2018-11-24
  • 2017-11-24
  • 2019-02-17
相关资源
最近更新 更多