Automatisches Inkrementieren der ID

cece90

Benutzer
Beiträge
9
Hallo,
ich bin neu hier und noch ein ziemlicher Anfänger, was Datenbanken angeht. Ich habe eine Frage, zu der ich im Internet leider noch keine direkte Antwort gefunden habe.
Und zwar möchte ich eine Datenbank mit eine Anwendung entwerfen, die darauf zugreifen kann und entsprechend neue Einträge in der Datenbank anlegen kann.
Nun Frage ich mich, wenn diese Anwendung bspw. einen neuen Kunden anlegt, dann soll die ID-Vergabe ja nicht vom Benutzer vorgenommen werden, sondern von der Anwendung. Bei MySQL ist beispielsweise über ein Autoincrement möglich, die ID automatisch zu inkrementieren.
Ist dies nicht eigentlich IMMER (also in JEDER Tabelle) sinnvoll und wird so auch in der Praxis gehandhabt, oder kann man teilweise Probleme bekommen, wenn man die ID immer automatisch inkrementieren lässt?


Vielen Dank schon einmal für eure Antworten!
 
Werbung:
Bei MySQL ist beispielsweise über ein Autoincrement möglich, die ID automatisch zu inkrementieren.
Ist dies nicht eigentlich IMMER (also in JEDER Tabelle) sinnvoll und wird so auch in der Praxis gehandhabt, oder kann man teilweise Probleme bekommen, wenn man die ID immer automatisch inkrementieren lässt?

Es ist üblich und praktisch, einen Primary Key zu haben - dazu dient oft solch ein automatisch generierter Wert. Das geht bei MySQL wie Dir bekannt, bei PostgreSQL z.B. über Sequencen (die noch etwas mehr können als MySQL). Probleme gibt es dabei eigentlich erst, wenn der Wertebereich überläuft.
 
Vielen Dank für deine Antwort akretschmer!
Okay, mich hat einfach gewundert, dass beispielsweise bei Oracle bis Version 11g scheinbar kein Autoincrement möglich ist. Bis zu dem Zeitpunkt musste man in einer Oracle-Datenbank scheinbar für jede Tabelle also eine eigene Sequence erstellen, damit man einen Autoincrement bekommt. Warum dort nicht schon früher wie bei MySQL die Möglichkeit gegeben war, verstehe ich nicht so ganz. Hast du dafür eine Erklärung?
 
Vielen Dank für deine Antwort akretschmer!
Okay, mich hat einfach gewundert, dass beispielsweise bei Oracle bis Version 11g scheinbar kein Autoincrement möglich ist. Bis zu dem Zeitpunkt musste man in einer Oracle-Datenbank scheinbar für jede Tabelle also eine eigene Sequence erstellen, damit man einen Autoincrement bekommt. Warum dort nicht schon früher wie bei MySQL die Möglichkeit gegeben war, verstehe ich nicht so ganz. Hast du dafür eine Erklärung?

MySQL ist nun nicht gerade Maßstab, eher nur ein schlechtes Beispiel. Sequencen sind erheblich praktischer und vielseitiger als das, was man bei MySQL da improvisiert hat. Glaub mir.
 
Oder beim Zusammenführen von zwei Datenbeständen unter Beibehaltung der IDs. Das wäre mit einer GUID z.B. nicht so.
 
Damit ich jetzt also nichts falsch verstanden habe:
es wird also (in der Regel) so gehandhabt, für jede Tabelle eine eigene Sequence erstellt wird, die die jeweilige ID einer Tabelle inkrementiert?
 
Damit ich jetzt also nichts falsch verstanden habe:
es wird also (in der Regel) so gehandhabt, für jede Tabelle eine eigene Sequence erstellt wird, die die jeweilige ID einer Tabelle inkrementiert?

Zumindest in PostgreSQL geht das impliziet, wenn man beim create table sagt: 'id serial', durch den Datentyp serial wird impliziet eine Sequence angelegt. Du kannst aber auch eine Sequence anlegen und darauf verweisen, und Du kannst auf eine Sequence von mehreren Tabellen aus verweisen - das geht z.B. in MySQL nicht.
 
Werbung:
Zurück
Oben