Ich habe die folgende Tabelle in Postgres erstellt ...Ist eine 'serial' Spalte automatisch ein Primärschlüssel in PostgreSQL?
create table printq (
model varchar(20),
session integer,
timestamp timestamp DEFAULT now(),
id serial);
Es scheint genau das zu tun, was ich es brauche ... es auto-Schritte der id-Spalte, wenn ich die Tabelle klar mit gestutzt " RESTART IDENTITY "Es setzt die Reihenfolge zurück (weshalb ich die Tabelle an erster Stelle neu aufgebaut habe - die ID-Spalte, die beim Abschneiden nicht neu gestartet wird)
Wie auch immer, wenn ich ein \ d auf dem Tisch mache, ich tu ' Ich sehe nichts über einen Primärschlüssel.
Table "public.printq"
Column | Type | Modifiers
-----------+-----------------------------+-----------------------------------------------------
model | character varying(20) |
session | integer |
timestamp | timestamp without time zone | default now()
id | integer | not null default nextval('printq_id_seq'::regclass)
Drei Fragen:
Ist die ID-Spalte bereits ein Primärschlüssel, da es auto-Schritten, oder nicht?
Wenn nicht, warum sollte diese Tabelle einen Primärschlüssel benötigen, da es scheint zu funktionieren? Ich weiß im Grunde jeder Tisch soll einen Primärschlüssel haben, aber warum genau?
Schließlich würde der \ d Befehl mir sagen, ob diese Tabelle einen Primärschlüssel hatte? Wenn nicht, was würde mir sagen?