AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MySQL Duplicate Entry Auto-Inc
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Duplicate Entry Auto-Inc

Ein Thema von JRichmann · begonnen am 29. Dez 2015 · letzter Beitrag vom 31. Dez 2015
Antwort Antwort
Seite 1 von 2  1 2      
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: MySQL Duplicate Entry Auto-Inc

  Alt 29. Dez 2015, 19:09
Hallo...

das Auto-INC Feld ist NICHT enthalten... es taucht im SQL String nicht auf.
(wenn es enthalten ist und auch gefüllt, dann kommt MySQL nicht klar).
Ich sehe jetzt an dem Code nicht, dass das ID Feld ausgeschlossen wird. Im Gegenteil, die "Props" werden dynamisch abgefragt und daraus das Statement gebaut.
Vielleicht doch mit ID, ab und zu?
Oder hast Du die konkreten SQL Statements vorliegen, wenn der Fehler zuschlägt?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: MySQL Duplicate Entry Auto-Inc

  Alt 29. Dez 2015, 20:22
Hat denn jeder Thread auch seine eigene Connection?

Wenn nicht, dann ist das auch kein Wunder mit der doppelten ID Vergabe.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 06:50
Hat denn jeder Thread auch seine eigene Connection?

Wenn nicht, dann ist das auch kein Wunder mit der doppelten ID Vergabe.
Wenn die ID nicht mitgeschickt wird, sondern wirklich von der DB generiert wird, sollte das doch wohl piepegal sein, oder?

ot
ich würde sofort die DB wechseln, wenn es auch nur nach solchen Problemen riecht. Bei diesem System auch aus anderen Gründen. Kann seit einigen Jahren nicht mehr nachvollziehen, warum so häufig oder überhaupt mysql eingesetzt wird.
/ot
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 08:14
@jobo

Wenn du mit mehr als einem Thread auf die gleiche Session zugreifst dann kann bei jeder DB alles passieren (meistens Grütze).

Jede Session ist an einen Thread gebunden und bei einer vernünftigen Implementierung (dieses Connection-Objekts) würde dir eine Exception um die Ohren fliegen, wenn du mit mehr als einem Thread gleichzeitig darauf zugreifst.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
195 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 08:20
Damit hast Du vollkommen Recht Sir Rufo (jeder Thread eine Connection), aber Jobo meinte, dass, wenn die ID vom DBMS erzeugt wird, eigentlich nichts passieren sollte.
Das DBMS bekommt über das INSERT-Statement eine Anforderung für eine neue ID (auto increment) und sollte diese auch entsprechend bereit stellen. Was clientseitig passiert ist da erst einmal egal (Threads) ... ist schon komisch, dass das DBMS das irgenwie nicht hinbekommt.
Thomas Forget
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 08:28
Es werden auch 2 IDs erzeugt, aber die letzte wurde bei beiden Datensätzen eingetragen (per last_inserted_id )

Die beiden Statements müssen nur zeitlich sehr dumm zusammenfallen. Man spricht hier von einer Bei Google suchenrace condition
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 08:38
Also ich habe sowas noch nie gehabt. Wenn sowas tatsächlich passiert, müsste ich über einen Kirchenaustritt nachdenken.
Ich arbeite allerdings auch nicht produktiv mit mysql.
Bevor ich dem nachgehen würde (aus Neugier), würde ich lieber andere Dinge prüfen:
- Datentyp der Auto Inc Spalte, scheint hier groß genug
- Dictionary Schrott durch manuelle Einträge, scheints ja hier zu geben. Wurde zumindest testhalber durchgeführt. Also AutoInc Wert per Alter Table neu setzen ("heilen")
- Sicherstellen(!), dass die Grundannahme "nur ein Client" tatsächlich richtig ist.
Gruß, Jo
  Mit Zitat antworten Zitat
JRichmann

Registriert seit: 8. Dez 2009
Ort: Pattensen
57 Beiträge
 
Delphi XE5 Architect
 
#8

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 10:11
Hallo...

>Hat denn jeder Thread auch seine eigene Connection?

Ja

Die DB kann ich leider nicht so einfach wechseln
Jörg Richmann
  Mit Zitat antworten Zitat
JRichmann

Registriert seit: 8. Dez 2009
Ort: Pattensen
57 Beiträge
 
Delphi XE5 Architect
 
#9

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 10:15
>Du schließt die Übergabe der ID (des PK / AI-Feldes) aus. Somit ist also MySQL gefragt. --> ok

Ja

>Sicherlich habt ihr die my.ini konfiguriert. Könnte Dir da ein Zusammenhang einfallen? (Clustern werdet ihr ja nicht, oder?? Da fehlt mir die Erfahrung)

Default Werte

>Andernfalls interessiert mich noch die Storage-Engine. --> InnoDB?

InnoDB
Jörg Richmann
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: MySQL Duplicate Entry Auto-Inc

  Alt 30. Dez 2015, 10:23
Dann trifft dich eventuell dieser Bug
https://bugs.mysql.com/bug.php?id=67526
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz