| Bug #16721 | ERROR 1062 (23000): Duplicate entry in a view (GROUP BY) | ||
|---|---|---|---|
| Submitted: | 23 Jan 2006 10:15 | Modified: | 24 Jan 2006 15:12 |
| Reporter: | jo soares | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server | Severity: | S1 (Critical) |
| Version: | 5.0.16-Debian_1-log | OS: | Linux (Linux debian 2.6.15 sarge) |
| Assigned to: | CPU Architecture: | Any | |
[24 Jan 2006 15:12]
Valeriy Kravchuk
Thank you for a problem report. Sorry, but I was not able to repeat the behaviour you described using latest 5.0.19-BK build on Linux:
mysql> SELECT *,COUNT(*) AS q FROM test1 GROUP by fatt_id_fiscale,azienda,tipo_ordine,tipologia, orecchio_ristampa\G
*************************** 1. row ***************************
marca: 036990023324
orecchio_ristampa: NULL
tipo_ordine: N
libro_genealogico: N
azienda: O002
id_fiscale: 0029298036
fatt_ragione_sociale: RTOLOTTIMAR
fatt_id_fiscale: 0029298036
fatt_indirizzo: COMUNAGLIE
fatt_localita: ORRE MA
fatt_comune: ARANELL
fatt_cap: 41053
fatt_provincia: MO
cons_ragione_sociale: SL DIMODENA1
cons_indirizzo: SASSUOL
cons_localita: ASSUOLO
cons_comune: OLOEEE
cons_cap: 41049
cons_provincia: MO
tipologia: 1
data_lotto: 2003-03-04
old_cod: 17
data_consegna_maior: 2003-03-04
data_fattura: 0000-00-00
from_file: 321
data_invio_teramo: 2003-03-04
produttore: 017
numero_fattura: -1
progr_sostituzione: 0
specie_allevata: NULL
nome_proprietario: NULL
id_proprietario: NULL
nome_detentore: NULL
id_detentore: NULL
data_pagamento: NULL
vettore: NULL
stato_spedizione: NULL
data_spedizione_maior: 2003-03-04
note: NULL
bolla: NULL
importo_fattura: NULL
destinatario: E17
priorita: 1
id: 2
q: 3
*************************** 2. row ***************************
marca: 090990074180
orecchio_ristampa: NULL
tipo_ordine: N
libro_genealogico: N
azienda: S003
id_fiscale: 0176130090
fatt_ragione_sociale: LUMARIOTTIO
fatt_id_fiscale: 0176130090
fatt_indirizzo: LOC.SALMAR
fatt_localita: ALMARIN
fatt_comune: RZACHEN
fatt_cap: 07021
fatt_provincia: SS
cons_ragione_sociale: ALUMARIOTTI1
cons_indirizzo: LOC.SAL
cons_localita: ALMARIN
cons_comune: HENAEE
cons_cap: 07021
cons_provincia: SS
tipologia: 1
data_lotto: 2004-11-12
old_cod: 02
data_consegna_maior: 2004-11-12
data_fattura: 0000-00-00
from_file: 1149
data_invio_teramo: 2004-11-15
produttore: 017
numero_fattura: -1
progr_sostituzione: 0
specie_allevata: NULL
nome_proprietario: NULL
id_proprietario: NULL
nome_detentore: NULL
id_detentore: NULL
data_pagamento: NULL
vettore: S.D.A
stato_spedizione: NULL
data_spedizione_maior: 2004-11-16
note: NULL
bolla: 15502
importo_fattura: NULL
destinatario: D02
priorita: 1
id: 1
q: 1
*************************** 3. row ***************************
marca: 034990145606
orecchio_ristampa: NULL
tipo_ordine: N
libro_genealogico: N
azienda: R093
id_fiscale: SPGBRO49A2
fatt_ragione_sociale: AGGIARIOBER
fatt_id_fiscale: SPGBRO49A2
fatt_indirizzo: VIA MONZAT
fatt_localita: ZZZZZZZ
fatt_comune: RAVERSE
fatt_cap: 43029
fatt_provincia: PR
cons_ragione_sociale: PAGGIARIOBER
cons_indirizzo: VIAMON
cons_localita: _______
cons_comune: RSETOLO
cons_cap: 43029
cons_provincia: PR
tipologia: 1
data_lotto: 2004-09-01
old_cod: 07
data_consegna_maior: 2004-09-01
data_fattura: 0000-00-00
from_file: 1077
data_invio_teramo: 2004-09-02
produttore: 017
numero_fattura: -1
progr_sostituzione: 0
specie_allevata: NULL
nome_proprietario: NULL
id_proprietario: NULL
nome_detentore: NULL
id_detentore: NULL
data_pagamento: NULL
vettore: S.D.A
stato_spedizione: NULL
data_spedizione_maior: 2004-09-03
note: NULL
bolla: 14064
importo_fattura: NULL
destinatario: E07
priorita: 1
id: 5
q: 6
3 rows in set (0.01 sec)
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.19 |
+-----------+
1 row in set (0.00 sec)
So, please, try to use newer version of MySQL, 5.0.18.

Description: Mysql goes in error when I try a query in a view using the GROUP BY clause on a field with NULL values. This is the query: SELECT *,COUNT(*) AS q FROM test1 GROUP by fatt_id_fiscale,azienda,tipo_ordine,tipologia, orecchio_ristampa; and this is the error message: ERROR 1062 (23000): Duplicate entry '0029298036-O002-N-1-NULL' for key 1 I tried without orecchio_ristampa column and it works (this field has NULL values) I tried also to assign a value to orecchio_ristampa and then it worked. The same query in the sorce table works perfectly. How to repeat: create table test ( marca character varying(15), orecchio_ristampa character(1), tipo_ordine character(1), libro_genealogico character(1), azienda character varying(10) not null, id_fiscale character varying(16), fatt_ragione_sociale character varying(40), fatt_id_fiscale character varying(16), fatt_indirizzo character varying(60), fatt_localita character varying(60), fatt_comune character varying(60), fatt_cap character varying(5), fatt_provincia character varying(2), cons_ragione_sociale character varying(40), cons_indirizzo character varying(60), cons_localita character varying(60), cons_comune character varying(60), cons_cap character varying(5), cons_provincia character varying(2), tipologia character varying(3), data_lotto date, old_cod character varying(4), data_consegna_maior date, data_fattura date DEFAULT '0000-00-00', from_file integer, data_invio_teramo date DEFAULT '0000-00-00', produttore character(3), numero_fattura integer DEFAULT 0, progr_sostituzione character(3), specie_allevata character(4), nome_proprietario character(40), id_proprietario character(16), nome_detentore character(40), id_detentore character(16), data_pagamento date, vettore varchar(50), stato_spedizione varchar(30), data_spedizione_maior date, note varchar(100), bolla integer, importo_fattura decimal(10,3), destinatario varchar(4), priorita integer DEFAULT 0, id integer AUTO_INCREMENT PRIMARY KEY ); create view test1 as select * from test; insert into test values('090990074180',NULL,'N','N','S003','0176130090','LU MARIOTTIO','0176130090','LOC.SALMAR','ALMARIN','RZACHEN','07021','SS','ALU MARIOTTI1','LOC.SAL','ALMARIN','HENA EE','07021','SS','1','2004-11-12','02','2004-11-12','0000-00-00',1149,'2004-11-15','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-11-16',NULL,15502 ,NULL ,'D02',1, 1); insert into test values('036990023324',NULL,'N','N','O002','0029298036','RTOLOTTI MAR','0029298036','COMUNAGLIE','ORRE MA','ARANELL','41053','MO','SL DI MODENA1','SASSUOL','ASSUOLO','OLO EEE','41049','MO','1','2003-03-04','17','2003-03-04','0000-00-00', 321,'2003-03-04','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'NULL ',NULL,'2003-03-04',NULL, NULL ,NULL ,'E17',1, 2); insert into test values('036990023323',NULL,'N','N','O002','0029298036','RTOLOTTI MAR','0029298036','COMUNAGLIE','ORRE MA','ARANELL','41053','MO','SL DI MODENA1','SASSUOL','ASSUOLO','OLO EEE','41049','MO','1','2003-03-04','17','2003-03-04','0000-00-00', 321,'2003-03-04','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'NULL ',NULL,'2003-03-04',NULL, NULL ,NULL ,'E17',1, 3); insert into test values('036990023322',NULL,'N','N','O002','0029298036','RTOLOTTI MAR','0029298036','COMUNAGLIE','ORRE MA','ARANELL','41053','MO','SL DI MODENA1','SASSUOL','ASSUOLO','OLO EEE','41049','MO','1','2003-03-04','17','2003-03-04','0000-00-00', 321,'2003-03-04','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'NULL ',NULL,'2003-03-04',NULL, NULL ,NULL ,'E17',1, 4); insert into test values('034990145606',NULL,'N','N','R093','SPGBRO49A2','AGGIARI OBER','SPGBRO49A2','VIA MONZAT','ZZZZZZZ','RAVERSE','43029','PR','PAGGIARI OBER','VIA MON','_______','RSETOLO','43029','PR','1','2004-09-01','07','2004-09-01','0000-00-00',1077,'2004-09-02','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-09-03',NULL,14064 ,NULL ,'E07',1, 5); insert into test values('034990145605',NULL,'N','N','R093','SPGBRO49A2','AGGIARI OBER','SPGBRO49A2','VIA MONZAT','XXXXXXX','RAVERSE','43029','PR','PAGGIARI OBER','VIA MON','_______','RSETOLO','43029','PR','1','2004-09-01','07','2004-09-01','0000-00-00',1077,'2004-09-02','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-09-03',NULL,14064 ,NULL ,'E07',1, 6); insert into test values('034990145604',NULL,'N','N','R093','SPGBRO49A2','AGGIARI OBER','SPGBRO49A2','VIA MONZAT','XXXXXXX','RAVERSE','43029','PR','PAGGIARI OBER','VIA MON','_______','RSETOLO','43029','PR','1','2004-09-01','07','2004-09-01','0000-00-00',1077,'2004-09-02','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-09-03',NULL,14064 ,NULL ,'E07',1, 7); insert into test values('034990145603',NULL,'N','N','R093','SPGBRO49A2','AGGIARI OBER','SPGBRO49A2','VIA MONZAT','XXXXXXX','RAVERSE','43029','PR','PAGGIARI OBER','VIA MON','_______','RSETOLO','43029','PR','1','2004-09-01','07','2004-09-01','0000-00-00',1077,'2004-09-02','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-09-03',NULL,14064 ,NULL ,'E07',1, 8); insert into test values('034990145602',NULL,'N','N','R093','SPGBRO49A2','AGGIARI OBER','SPGBRO49A2','VIA MONZAT','XXXXXXX','RAVERSE','43029','PR','PAGGIARI OBER','VIA MON','_______','RSETOLO','43029','PR','1','2004-09-01','07','2004-09-01','0000-00-00',1077,'2004-09-02','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-09-03',NULL,14064 ,NULL ,'E07',1, 9); insert into test values('034990145601',NULL,'N','N','R093','SPGBRO49A2','AGGIARI OBER','SPGBRO49A2','VIA MONZAT','XXXXXXX','RAVERSE','43029','PR','PAGGIARI OBER','VIA MON','_______','RSETOLO','43029','PR','1','2004-09-01','07','2004-09-01','0000-00-00',1077,'2004-09-02','017',-1,0,NULL,NULL, NULL,NULL,NULL,NULL,'S.D.A',NULL,'2004-09-03',NULL,14064 ,NULL ,'E07',1,10); SELECT *,COUNT(*) AS q FROM test1 GROUP by fatt_id_fiscale,azienda,tipo_ordine,tipologia, orecchio_ristampa;