2009-06-20 6 views
1

Ich habe ein Problem in mysql, dass ich eine Feld-ID habe, die Auto-Inkrement und einige andere Felder ist. Dabei sollte das ID-Feld nicht automatisch inkrementiert werden, während die NULL-Werte verwendet werden, und es sollte automatisch inkrementiert werden, während Werte eingegeben werden. Geben Sie Werte in die gleiche Zeile ein und geben Sie dabei keine Nullwerte an.Ich habe ein Problem in MySQL, dass ich eine Feld-ID habe, die Auto-Inkrement ist und einige andere Felder

+1

Dies ergibt keinen Sinn. Versuchen Sie, eine Nullzeile zu erstellen und sie dann mit Daten zu füllen? – Eric

Antwort

1

Es klingt so, als müssten Sie den Wert für das ID-Feld selbst in Ihrem eigenen Code generieren, anstatt die Datenbank zu generieren.

Wenn Sie ein Identitätsfeld in der Datenbank erstellen, erstellt die Datenbank das Feld automatisch. Im Allgemeinen tritt dies auf, wenn der Datensatz gespeichert wird, ob Nullfelder vorhanden sind oder nicht. Wenn Sie mehr Kontrolle benötigen, müssen Sie die ID-Werte selbst generieren.

Wenn Sie wissen müssen, was die nächste ID-Nummer ist, können Sie es mit SELECT MAX (id_field);

+0

Wenn Sie MAX (id) verwenden, achten Sie darauf, dass beim Löschen von Zeilen eine ID erneut verwendet werden kann. –

0

Die Antwort von Robert Harvey geht auf das Problem ein, aber ich würde auch vorschlagen, zu prüfen, was Sie sparen und sehen, ob es einen anderen Ansatz gibt. Vielleicht sollten die Nullwerte in einer anderen Tabelle gespeichert werden? Vielleicht ist die Spalte, die Sie als Auto-Inkrement haben, nicht der Primärschlüssel.

Dies mag nicht die Richtung sein, aber in diesem Fall lohnt es sich, zurückzutreten und erneut zu untersuchen.

Verwandte Themen