2014-11-04 146 views
7

我正在MySQL中运行查询,我按四列进行分组并选择了很多东西,包括我正在分组的四个值。重复键入'group_key'条目

Duplicate entry '92-0-10-7' for key 'group_key' 

92,0,10和7是四个分组,按列特定行(实际上,我检查的所有值,并且有:但是当我运行查询我得到这个错误适合这些参数的63行)。但我不知道这意味着什么,或者如何正确运行我的查询。

我的查询:

Create table table2 as 
Select round(x, 0) as x, round(a, 0) as a, round(b, 0) as b, c, d, e, f 
from table1 
group by round(x, 0), round(a, 0), round(b, 0), c 

92将适合x时,0个,10个B和7c中。

我没有这张表的索引。

谢谢!

+0

您的查询'SELECT'而只有可能发生的DML该错误消息('UPDATE'或'INSERT')。所以,错误信息是由另一个查询造成的。 – zerkms 2014-11-04 00:28:48

+0

你是什么意思的另一个查询?我只运行这个查询,它仍然给我这个消息。另外,FWIW,实际的查询是一个create table命令,但唯一的区别是在select前面有一个“create table table2 as”。 – japem 2014-11-04 00:30:47

+0

@zerkms我没有尝试运行相同的查询而没有创建表部分,也没有改变,所以我不认为这很重要。 – japem 2014-11-04 00:34:53

回答

8

你的问题看起来像一个MySQL的错误。我前几天正在审查我们的生产服务器的日志,错误日志中充满了这个错误。我使用了下面的解决方法,错误消失了。

SET SESSION max_heap_table_size = 536870912;

SET SESSION tmp_table_size = 536870912;

来源:http://bugs.mysql.com/bug.php?id=58081

+0

为我工作。谢谢 – bloub 2016-07-25 10:39:23

+0

也适用于我。 MySQL 5.6.33。将这些设置添加到my.cnf。 – cronfy 2016-10-25 08:46:32

+0

我不能在这里描述我的表格结构,但是使用5.6.35,这并没有解决我的错误 – chiliNUT 2018-01-25 19:13:00

0

这通常是磁盘空间的问题。特别临时空间(在linux /tmp中)。检查数据库服务器磁盘空间。

0

你应该把该组中的别名买这样的:

Create table table2 as 
Select round(x, 0) as x, round(a, 0) as a, round(b, 0) as b, c, d, e, f 
from table1 
group by x, a, b, c;