MySQL Query Duplicate Entry

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Gunngir.

    MySQL Query Duplicate Entry

    Hallo, mein Programm hat unter anderem zwei Tabellen, wobei die eine Tabelle als Historie benutzt wird.
    Der Zeitverlust zum Speichern von elemente in elemente_history ist zu vernachlässigen.

    Ich will eine Rücksicherung von einer Komponente eines alten Standes fahren.

    Die ID wurde bereits von einem Benutzer gelöscht - existiert also nicht mehr.

    Wisst Ihr, wieso dieser Query nicht funktioniert?
    Vielleicht sicht man(n) mal wieder den Wald vor lauter Bäumen nicht...

    SQL-Abfrage

    1. SELECT COUNT(*) FROM elemente WHERE ID=1624


    COUNT(*) = 0

    SQL-Abfrage

    1. INSERT INTO `elemente`
    2. (`ID`, `Komponente`, `KompID`, `ZSB`, `Ort`, `AnzLi`, `AnzRe`, `Bezeichnung`, `Beschreibung`, `KdNr`, `KompIndex`, `BaugrIndex`, `Abteilung`, `Firma`, `KON_StartFreigabe`, `KON_Firma`, `KON_Start`, `KON_Ende`, `KON_MA`, `KON_BaugrIO`, `SIM_StartFreigabe`, `SIM_Firma`, `SIM_Start`, `SIM_Ende`, `SIM_MA`, `SIM_BaugrIO`, `DTL_StartFreigabe`, `DTL_Firma`, `DTL_n`, `DTL_Start`, `DTL_Ende`, `DTL_MA`, `DTL_BaugrIO`, `KTR_StartFreigabe`, `KTR_Firma`, `KTR_Start`, `KTR_Ende`, `KTR_MA`, `KTR_BaugrIO`, `ABS_StartFreigabe`, `ABS_Firma`, `ABS_Start`, `ABS_Ende`, `ABS_MA`, `ABS_BaugrIO`, `LFG_StartFreigabe`, `LFG_Firma`, `LFG_Start`, `LFG_Ende`, `LFG_MA`, `LFG_BaugrIO`, `OrgID`, `Angelegt`, `Liefertermin`, `LiefIdx1`, `LiefIdx2`, `Geliefert`, `MA_Zul_Bearb`, `Datum_Zul_Bearb`, `KTR_Aend`, `LockTime`, `LockMA`)
    3. SELECT `ID`, `Komponente`, `KompID`, `ZSB`, `Ort`, `AnzLi`, `AnzRe`, `Bezeichnung`, `Beschreibung`, `KdNr`, `KompIndex`, `BaugrIndex`, `Abteilung`, `Firma`, `KON_StartFreigabe`, `KON_Firma`, `KON_Start`, `KON_Ende`, `KON_MA`, `KON_BaugrIO`, `SIM_StartFreigabe`, `SIM_Firma`, `SIM_Start`, `SIM_Ende`, `SIM_MA`, `SIM_BaugrIO`, `DTL_StartFreigabe`, `DTL_Firma`, `DTL_n`, `DTL_Start`, `DTL_Ende`, `DTL_MA`, `DTL_BaugrIO`, `KTR_StartFreigabe`, `KTR_Firma`, `KTR_Start`, `KTR_Ende`, `KTR_MA`, `KTR_BaugrIO`, `ABS_StartFreigabe`, `ABS_Firma`, `ABS_Start`, `ABS_Ende`, `ABS_MA`, `ABS_BaugrIO`, `LFG_StartFreigabe`, `LFG_Firma`, `LFG_Start`, `LFG_Ende`, `LFG_MA`, `LFG_BaugrIO`, `OrgID`, `Angelegt`, `Liefertermin`, `LiefIdx1`, `LiefIdx2`, `Geliefert`, `MA_Zul_Bearb`, `Datum_Zul_Bearb`, `KTR_Aend`, `LockTime`, `LockMA`
    4. FROM elemente_history
    5. WHERE ID=1624




    MySQL meldet:
    #1062 - Duplicate entry '1624' for key 'PRIMARY'

    Der diese ID gibt es aber, wie das erste Query zeigt, nicht!
    Was ist mein Fehler?
    Danke für den Tipp,

    hier der fertige Query für alle, die das gleiche Problem haben :)

    Das Problem war tatsächlich, dass die gewählte ID mehrere Revisionen hat. Sie ist ja auch eine Historie-Tabelle...
    Hier muss man nur noch die neueste ID raussuchen und dann klappt das auch ohne Probleme.

    SQL-Abfrage

    1. INSERT INTO `elemente`
    2. (`ID`, `Komponente`, `KompID`, `ZSB`, `Ort`, `AnzLi`, `AnzRe`, `Bezeichnung`, `Beschreibung`, `KdNr`, `KompIndex`, `BaugrIndex`, `Abteilung`, `Firma`, `KON_StartFreigabe`, `KON_Firma`, `KON_Start`, `KON_Ende`, `KON_MA`, `KON_BaugrIO`, `SIM_StartFreigabe`, `SIM_Firma`, `SIM_Start`, `SIM_Ende`, `SIM_MA`, `SIM_BaugrIO`, `DTL_StartFreigabe`, `DTL_Firma`, `DTL_n`, `DTL_Start`, `DTL_Ende`, `DTL_MA`, `DTL_BaugrIO`, `KTR_StartFreigabe`, `KTR_Firma`, `KTR_Start`, `KTR_Ende`, `KTR_MA`, `KTR_BaugrIO`, `ABS_StartFreigabe`, `ABS_Firma`, `ABS_Start`, `ABS_Ende`, `ABS_MA`, `ABS_BaugrIO`, `LFG_StartFreigabe`, `LFG_Firma`, `LFG_Start`, `LFG_Ende`, `LFG_MA`, `LFG_BaugrIO`, `OrgID`, `Angelegt`, `Liefertermin`, `LiefIdx1`, `LiefIdx2`, `Geliefert`, `MA_Zul_Bearb`, `Datum_Zul_Bearb`, `KTR_Aend`, `LockTime`, `LockMA`)
    3. SELECT `ID`, `Komponente`, `KompID`, `ZSB`, `Ort`, `AnzLi`, `AnzRe`, `Bezeichnung`, `Beschreibung`, `KdNr`, `KompIndex`, `BaugrIndex`, `Abteilung`, `Firma`, `KON_StartFreigabe`, `KON_Firma`, `KON_Start`, `KON_Ende`, `KON_MA`, `KON_BaugrIO`, `SIM_StartFreigabe`, `SIM_Firma`, `SIM_Start`, `SIM_Ende`, `SIM_MA`, `SIM_BaugrIO`, `DTL_StartFreigabe`, `DTL_Firma`, `DTL_n`, `DTL_Start`, `DTL_Ende`, `DTL_MA`, `DTL_BaugrIO`, `KTR_StartFreigabe`, `KTR_Firma`, `KTR_Start`, `KTR_Ende`, `KTR_MA`, `KTR_BaugrIO`, `ABS_StartFreigabe`, `ABS_Firma`, `ABS_Start`, `ABS_Ende`, `ABS_MA`, `ABS_BaugrIO`, `LFG_StartFreigabe`, `LFG_Firma`, `LFG_Start`, `LFG_Ende`, `LFG_MA`, `LFG_BaugrIO`, `OrgID`, `Angelegt`, `Liefertermin`, `LiefIdx1`, `LiefIdx2`, `Geliefert`, `MA_Zul_Bearb`, `Datum_Zul_Bearb`, `KTR_Aend`, `LockTime`, `LockMA`
    4. FROM elemente_history
    5. WHERE ID=1624 AND `revision`=(SELECT max(`revision`) FROM elemente_history WHERE ID=1624)