Seite 1 von 1

[DB] auto_increment löscht sich von selbst ?!?!?

Verfasst: Freitag 13. Januar 2006, 13:22
von jens
Also ich steh total auf dem Schlauch! Mit dem neuen Datenbank-Adapter verschwinden hin und wieder, einfach so die auto_increment's :shock:

d.h. in Tabellen, in der es ein auto_increment ID gibt, sind die plötzlich nicht mehr auf auto_increment gesetzt... Also quasi so als wenn der Befehl ausgeführt wird:

Code: Alles auswählen

ALTER TABLE `PyLucid_base_archive` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT
Aber das wird eigentlich nicht gemacht... Ich glaube es hängt mit INSERT zusammen. Es passiert auf unterschiedlichen Tabellen und ich kann es noch nicht reproduzieren...

EDIT: Hm! Heute ist Freitag der 13. ...ob das was damit zu tun hat?
Ich bin noch kein Stück weiter :cry:

Das auto_increment Flag wird zurückgesetzt ?

Verfasst: Freitag 13. Januar 2006, 17:37
von alen
Hei,

habe ich das richtig verstanden, das auto_increment Flag wird zurückgesetzt so das keine automatische ID mehr geschrieben wird ? Felder bleiben leer wenn Du selber nichts reinschreibst.

Bild

In Klarttext: Im Extra Feld steht nichts mehr drin.

Das passiert auch nur gelegentlich mit unterschiedlichen Tabellen ?

Grüße
ALEN

Verfasst: Freitag 13. Januar 2006, 18:07
von jens
Jep genau so ist es :(
Kennst du das??? Weißt du woran es liegen kann?

Ich schau mal in den Code.

Verfasst: Samstag 14. Januar 2006, 11:36
von alen
jens hat geschrieben:Jep genau so ist es :(
Kennst du das??? Weißt du woran es liegen kann?
Hei,

ich werde mal im Code stöbern vielleicht fällt mir was auf.

Grüße
ALEN

Verfasst: Donnerstag 19. Januar 2006, 13:14
von jens
Ich habe jetzt den SQL-Fehler """Commands out of sync; You can't run this command now""" Bei einem SELECT Befehl erhalten... Hört sich nicht so gut an...

Was soll mir das sagen?

Hier gibt es ein Erklärungsversuch:
http://dev.mysql.com/doc/refman/4.0/de/ ... -sync.html
Wenn Sie den Fehler command out of sync; You can't run this command now in Ihrem Client-Code erhalten, rufen Sie Client-Funktionen in der falschen Reihenfolge auf!

Das kann zum Beispiel passieren, wenn Sie mysql_use_result() benutzen und versuchen, eine neue Anfrage auszuführen, bevor Sie mysql_free_result() aufgerufen haben. Der Fehler passiert ebenfalls, wenn Sie versuchen, zwei Anfragen auszuführen, die Daten zurückgeben, ohne zwischendrin mysql_use_result() oder mysql_store_result() aufzurufen.
Allerdings mache ich nicht's von dem...

OK, ich denke ich hab den Fehler gefunden... Es passiert, wenn eine Seite als parent ID sich selber angegeben hat...

Verfasst: Dienstag 27. Juni 2006, 07:08
von jens
Ich glaube ich hab das auto_increment Problem gefunden. Zumindest hab ich einen Anhaltspunkt. Wahrscheinlich wird die Einstellung nicht von alleine gelöscht, sondern bei einem SQL DUMP austausch einfach nicht gesetzt.

Wenn man einen SQL Dump erstellt (Egal ob mit mysqldump, PyLucid oder phpMyAdmin) und SQL-Export-Kompatibilität auf MySQL v4.0 stellt, dann werden die auto_increment anscheinent nicht mit in den Dump geschrieben :shock:

Wenn ich z.B. mit phpMyAdmin einen Dump erstelle, kann eine Tabelle so aussehen:

Code: Alles auswählen

DROP TABLE IF EXISTS `phpbb_words`;
CREATE TABLE `phpbb_words` (
  `word_id` mediumint(8) unsigned NOT NULL,
  `word` char(100) NOT NULL default '',
  `replacement` char(100) NOT NULL default '',
  PRIMARY KEY  (`word_id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Am Ende steht zwar was von auto increment, aber nach dem importieren des Dumps, ist `word_id` nicht mit dem Flag versehen!

btw. in PyLucid v0.7 gibt es im install Bereich eine Möglichkeit alle auto_increment setzten zu lassen ;)