Automatisch hochzählender PK: SQL konform oder "serial"?

Werbung:
Das ist letztendlich eine Frage des Geschmacks.

Beide (serial und identity) verwenden im Hintergrund eine Sequence und verhalten sich fast identisch.

Der einzige Unterschied ist, dass man bei IDENTITY das manuelle Überschreiben erschweren (aber nicht verhindern) kann.
 
aufpassen sollte man noch welchen Datentyp man letztendlich einsetzt, ein nachträgliches ändern von INT auf BIGINT ist nicht ganz schmerzfrei ...
 
Pragmatisch gesehen muss man beim Setzen des Datentyps "serial" offenbar weniger Code schreiben, weil "Int4" noch eine explizite Angabe "nextval ..." benötigt.

Nun habe ich versucht in einer existierenden Datenbank, wo Int4 verwendet wurde, diesen Datentyp nach "serial" zu ändern. Ohne Erfolg.
Man kann offenbar nur in einer neuen Tabelle/Spalte diesen Datentyp vergeben.
Probiert habe ich es in 2 verschiedenen GUI-Tools, bei beiden mit dem gleichen Ergebnis. Änderung nicht möglich.

Wie geht man also bitte vor, wenn man den Datentyp einer existierenden Tabelle zu "serial" ändern möchte?

Und aus Neugier: warum ist das nachträgliche Ändern "ein Problem"?
 
Werbung:
Alles klar, "serial" ist nur ein Pseudo-Datentyp, eine Art abkürzende Schreibweise, die dann in eine ausführliche Form umgewandelt wird.
 
Zurück
Oben