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