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

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
alen
User
Beiträge: 10
Registriert: Donnerstag 25. August 2005, 17:39
Wohnort: Duisburg
Kontaktdaten:

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Jep genau so ist es :(
Kennst du das??? Weißt du woran es liegen kann?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
alen
User
Beiträge: 10
Registriert: Donnerstag 25. August 2005, 17:39
Wohnort: Duisburg
Kontaktdaten:

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten