ID (primary key) zählt merkwürdig hoch

Roble

Benutzer
Beiträge
6
Hallo zusammen,

ich speichere in einer Tabelle z.B. nur Jahreszahlen.
Also habe ich 2 Spalten, einen primary key und die Jahreszahl.

Warum wird denn der primary key nicht automatisch hochgezählt,
so daß ich für diese Spalte schon 'autoincrement' verbrauchen muß
(MySQL scheint 'autoincrement' ja nur einmal pro Tabelle zu akzeptieren)?

Außerdem speichert MySQL gleich so hohe IDs.
Also sobald ich die ID nicht selbst eingebe, z.B.:
ID Wert
1 2011
2 2012
vergibt MySQL folgende IDs:
ID Wert
2014 2013
2015 2014
2016 2015
Das finde ich mindestens unschön.

Dank für alle Tipps.
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.160
Hallo zusammen,

ich speichere in einer Tabelle z.B. nur Jahreszahlen.
Also habe ich 2 Spalten, einen primary key und die Jahreszahl.

Warum wird denn der primary key nicht automatisch hochgezählt,
so daß ich für diese Spalte schon 'autoincrement' verbrauchen muß
(MySQL scheint 'autoincrement' ja nur einmal pro Tabelle zu akzeptieren)?
Seitenblick zu PostgreSQL: da gibt es SERIAL, du kannst beliebig viele SERIAL-Spalten verwenden. Das basiert auf SEQUENCE, du kannst auch ein und dieselbe Sequence in mehreren Tabellen verwenden, wenn die Spalte z.B. auch über mehrere Tabelle Unique sein soll.

Außerdem speichert MySQL gleich so hohe IDs.
Also sobald ich die ID nicht selbst eingebe, z.B.:
ID Wert
1 2011
2 2012
vergibt MySQL folgende IDs:
ID Wert
2014 2013
2015 2014
2016 2015
Es gibt IMHO Möglichkeiten, diese auf einen Wert (zurück)zusetzen.

Das finde ich mindestens unschön.
Dank für alle Tipps.

Ich fasse das weiter und finde MySQL insgesamt unschön ;-)
 
Werbung:

Roble

Benutzer
Beiträge
6
Ja, Du brauchst AUTOINCREMENT, wenn es automatisch hochzählen soll. Das setzen des Startwertes kannst Du der Doku entnehmen, das ist ganz sicher gut dokumentiert.

Deine Fragen damit geklärt?

Hmm,
'autoincrement' war mir bewußt - deshalb ja die Aussage: "zählt merkwürdig hoch",
nur, daß ich den Wert unter 'operationen' auf den nächsten _zu vergebenden Wert_ (wieder herunter)setzen muß,
fehlte mir als Info.

Danke.
 
Oben