Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [MYSQL] SQL Error: 1062 duplicate entry

    Ciao ragazzi...
    ho a disposizione un db di test e un db di produzione.
    Su entrambi è stata definita una tabella che chiamiamo tabella1 così definita:

    CREATE TABLE `db`.`tabella1` (
    `codice_1` int(10) unsigned NOT NULL,
    `codice_2` int(10) unsigned NOT NULL,
    `tipo_codice` varchar(5) NOT NULL,
    `data` datetime,
    PRIMARY KEY (`codice_2`,`tipo_codice`),
    KEY `FK_tabella1_1` (`codice_1`),
    CONSTRAINT `FK_tabella1_1` FOREIGN KEY (`codice_1`) REFERENCES `users` (`codice_users`) ON DELETE CASCADE ON UPDATE NO ACTION
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    a questi db e quindi a questa tabella, si accede attraverso un applicativo java che fa uso di Hibernate.

    Devo importare circa 100000 record da un file. Tale importazione viene completata correttamente nel db di test.

    Invece sul db di produzione su alcuni record ricevo il seguente sql error:
    SQL Error: 1062 duplicate entry for key 1.

    Sono sicuro al 100% che non ci sono record con chiave duplicata.
    Allora cosa può essere?

  2. #2
    tu hai messo la chiave primaria su una coppia di valori il che signifca che potresti avere il secondo valore vuoto ed il primo quindi con valore già esistente nel database, qualcosa tipo:
    - 100, abcd
    - 100,

    (nella seconda riga non c'è per l'appunto niente nel secondo valore)

    Inoltre puoi essere sicuro quanto vuoi ... ma se ti da quell'errore vuol dire che lui becca un valore che gli va in conflitto con uno già presente ... non c'è possibilità di errore ... poi sul come è costruito questo dato e se deve effettuare il controllo sulla coppia di valori o meno e tutt'altro discorso
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    69
    Il messaggio non lascia interpretazioni, come dice anche daniele_dll hai almeno 1 record che viola la chiave, però non concordo sull'esempio di daniele_dll dato che sono definiti entrambi NOT NULL.

    Sicuro che nel db di test ci siano tutti e sia creata identica la tabella ? chiavi comprese ?

  4. #4
    Originariamente inviato da theJack
    ...sull'esempio di daniele_dll dato che sono definiti entrambi NOT NULL...
    pardon ... non me ne ero accorto
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    69
    Originariamente inviato da daniele_dll
    pardon ... non me ne ero accorto
    capita, non hai avuto i problemini che ho avuto io con un db altrimenti sarebbe la prima cosa che controlleresti

  6. #6
    sono sicuro perchè l'importazione avviene da un file csv.
    ad esempio, l'errore mi viene dato sull'importazione della prima di queste righe:

    codice1, codice2, tipoCodice, data (intestazione)
    945,1456324879,tipo1,null
    945,1456324880,tipo1,null
    945,1456324881,tipo1,null

    ed è sicuro che non è ancora stato inserito nessun record con tale chiave.
    anche perché questo errore mi indica che c'è già un altro record con tale chiave e per tale motivo non scrive. Ma se faccio una select, non vi è nessun record con questa chiave.

    Grazie per le risposte.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    69
    Originariamente inviato da aironeangelo77
    sono sicuro perchè l'importazione avviene da un file csv.
    ad esempio, l'errore mi viene dato sull'importazione della prima di queste righe:

    codice1, codice2, tipoCodice, data (intestazione)
    945,1456324879,tipo1,null
    945,1456324880,tipo1,null
    945,1456324881,tipo1,null

    ed è sicuro che non è ancora stato inserito nessun record con tale chiave.
    anche perché questo errore mi indica che c'è già un altro record con tale chiave e per tale motivo non scrive. Ma se faccio una select, non vi è nessun record con questa chiave.

    Grazie per le risposte.
    Sicuro che non venga tagliato il record ? quelli che citi non sembrano dati reali

  8. #8
    Originariamente inviato da theJack
    Sicuro che non venga tagliato il record ? quelli che citi non sembrano dati reali
    Un esempio di dati reali che non importa sono i seguenti:
    00146156 tipo1 0013401476 null
    00146178 tipo1 0013805930 null

    E questa è l'eccezionione che mi viene lanciata:
    Duplicate entry '13401476' for key 1

    Nel file di importazione non c'è nessun duplicato della chiave e anche nel db non è presente nessun record con tale chiave.

    Sono veramente esterefatto...

  9. #9
    Ho notato una cosa...
    1) Faccio la delete di un record in questa tabella, apparentemente il record non c'è più...infatti se faccio una relativa select, non ottengo nessun resultset come effettivamente mi aspettavo.
    2) Se faccio successivamente una insert dello stesso record che ho cancellato, ottengo la stessa eccezione descritta precedentemente cioè quella di chiave duplicata!!!!!!
    Ma come è possibile? Se ho fatto una delete di quel record?!?!?!?!

    PS dimentica di dirvi che su questa tabella è registrato un trigger che si attiva quando vengono fatte operazioni su tale tabella (non so precisamente che cosa faccia).

  10. #10
    scusa la domanda ..... ma la hai scritta a mano tu o è cosi nel db? ovvero tipo1 è la colonna codice2?
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.