Я создал следующую таблицу в Postgres ...Является ли «последовательный» столбец автоматически первичным ключом в PostgreSQL?
create table printq (
model varchar(20),
session integer,
timestamp timestamp DEFAULT now(),
id serial);
Это, кажется, делает именно то, что мне это нужно, чтобы ... Он автоматически увеличивает значение столбца ID, когда я очистить таблицу с помощью усечения " RESTART IDENTITY ", он сбрасывает последовательность (именно поэтому я перестроил таблицу в первую очередь - столбец идентификатора, используемый для перезапуска при усечении)
В любом случае, когда я делаю a \ d на столе, что-нибудь о первичном ключе.
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)
Три вопроса:
ли столбец ID уже первичный ключ, так как она автоматически приращений, или нет?
Если нет, зачем этой таблице нужен первичный ключ, так как он работает нормально? Я знаю, что каждая таблица должна иметь первичный ключ, но почему именно?
И наконец, будет ли команда \ d сказать, есть ли в этой таблице первичный ключ? Если нет, что бы мне сказали?