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
Mysql 键'的重复输入;组键';_Mysql_Key - Fatal编程技术网

Mysql 键'的重复输入;组键';

Mysql 键'的重复输入;组键';,mysql,key,Mysql,Key,我在MySQL中运行一个查询,其中我按四列进行分组,并选择了很多内容,包括我按四个值进行分组的内容。但我在运行查询时遇到以下错误: 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,

我在MySQL中运行一个查询,其中我按四列进行分组,并选择了很多内容,包括我按四个值进行分组的内容。但我在运行查询时遇到以下错误:

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、0A、10B和7C

我在这张表上没有索引


谢谢

您的问题似乎是MySQL错误。前几天我在查看生产服务器的日志,错误日志中充满了这个错误。我使用了下面的解决方法,错误消失了

设置会话最大堆表大小=536870912

设置会话tmp_table_size=536870912


来源:

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

您应该在group buy中输入别名,如下所示:

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;

您的查询是
SELECT
,而该错误消息可能只出现在DML(
UPDATE
INSERT
)中。那么,错误消息是由另一个查询引起的。你说的另一个查询是什么意思?我只是在运行这个查询,它仍然会给我这个消息。另外,FWIW,实际的查询是一个create table命令,但唯一的区别是select前面有一个“create table table 2 as”。@zerkms我确实尝试过在没有create table部分的情况下运行同一个查询,但没有任何更改,所以我认为这并不重要。
groupby
在这个查询中没有意义。这里没有聚合函数
ROUND()
不是聚合函数。无法正确确定d、e和f的值。你真的是说
选择不同的
?否则,分组的目的是什么?可能是一个MySQL错误:对我也有用。mysql 5.6.33。在我的.cnf中添加了这些设置。我无法在这里描述我的表结构,但使用5.6.35并没有修复我的错误。您保存了我的培根。谢谢。将MySQL的
tmpdir
更改为具有更多可用空间的文件夹为我解决了这个问题。谢谢