Meer
PostgreSQL Autoincrement
Ik'ben aan het overschakelen van MySQL naar PostgreSQL en vroeg me af hoe ik auto-increment waarden kan doen. Ik zag in de PostgreSQL docs een datatype "serial", maar ik krijg syntaxfouten bij het gebruik ervan (in v8.0).
553
3
Ja, SERIAL is de equivalente functie.
SERIAL is slechts een macro om reeksen in tabeltijd aan te maken. U kunt SERIAL niet wijzigen in een bestaande kolom.
U kunt elk ander integer data type gebruiken, zoals
smallint
.Voorbeeld :
Het is beter om uw eigen datatype te gebruiken, in plaats van user serial data type.
In de context van de gestelde vraag en in antwoord op de opmerking van @sereja1c, creëert het creëren van
SERIAL
impliciet sequenties, dus voor het bovenstaande voorbeeld-CREATE TABLE
zou impliciet sequentiefoo_id_seq
aanmaken voor seriële kolomfoo.id
. Vandaar datSERIAL
[4 Bytes] goed is voor zijn gebruiksgemak, tenzij u een specifiek datatype nodig heeft voor uw id.