Tom: Es ist ein BUG

Beitrag lesen

Hello,

und da mysql nicht unbedinkt mit referentieller integrität arbeitet, wird mir ein wenig angst und bange, wenn ich das sehe was mysql alles macht, wenn man einen delete statement absetzt. was passiert den, wenn ich nun den datensatz mit den höchsten autowert lösche, aber ein verweis noch in einer anderen tabelle verbleibt. dann kommmt der nächste eingefügte datensatz automatisch damit in verbindung. grundsätzlich würde ich das als vorteil ansehen, wenn niemals der autoincrementwert bei einem delete statement verändert wird. das ist für mich böse, böse ;-)

aber von meinen bedenken mal abgesehen, noch eine blöde frage, die vielleicht schon gefragt wurde. hast du den das auto-commit gesetzt ?

Das Autocommit ist default und ich habe es auch noch dediziert gesetzt. Macht aber keinen Unterschied.

Gelöscht wird der Initialwert für den Autokey ja auch nur dann, wenn man GENAU "delete from $table" schreibt. Sowie ein Filter angegeben wird, bleibt er unangetastet. das bezieht sich aber nicht auf alle Tabellentypen, aber auf jeden fall auf MyISAM

Also ein   "delete from $table where 1" würde auch alle Sätze löschen, aber nicht den Merker für den Autowert zurücksetzen. Man kann dann auch den Satz mit dem höchsten Autokey löschen. Der Vorgang löscht aber nicht den Merker im Kopf der Tabelle.

Wenn man nun einen Datensatz einfügt in eine tabelle mit Autoincrement-Key und benutzt einen sehr großen Wert, wird automatisch dieser Wert als Basis für die Bestimmung des nächsten benutzt. Das ist eben MySQL und keine Datenbanksoftware *gg* .

Dafür habe ich nun meine Statements für das Auffinden der Tauschpartner endlich fertig. Muss ich aber auch ein select mit SelfJoin und ein Update mit der Trickrechnung, die hier vorgeführt wurde, durchführen. Die Überprüfung, ob überhaupt zwei Tauschpartner im Filterberich vorhanden sind muss dann in PHP stattfinden (mysql_num_rows() == 2), das Filtern natürlich nicht.

Ich habe das Bei MySQL in die Bug-Diskussionsliste eingetragen. mal sehen, ob sie sich dazu äußern.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau