2014-11-04 81 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; 
相關問題