PostgreSQL автоматически увеличивает значение по умолчанию

Возможный дубликат:
Increment значение идентификатора таблицы для каждого INSERT

Мне нужно установить ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ для одной таблицы,

со структурой:

column1    |     column2     |   column3
-----------+-----------------+-------------
10001      |      chair      |     23
10002      |      lamp       |     10

где если я

INSERT INTO значения столбца2 и столбца3 (ваза, 30), столбец1 будет автоматически увеличиваться со значением 10003 и каждый раз со значением +1.

Может ли кто-нибудь помочь мне с этим?


person Marián Zeke Šedaj    schedule 30.11.2012    source источник


Ответы (1)


Вам нужно: 1) Создать последовательность. Подробности здесь

CREATE SEQUENCE seq_name -- sequence name
START 10003 -- value for the next row 

2) Установите nextval('seq_name') по умолчанию для столбца column1. Подробности здесь.

ALTER TABLE table_name
ALTER COLUMN column1
SET DEFAULT nextval('seq_name');

UPD SQLFiddle с примером.

person Ihor Romanchenko    schedule 30.11.2012
comment
+1 - видимо, вы можете сделать это в postgreSQL - DB2 (по крайней мере, моя версия) допускает только константы или определенные «специальные регистры», а не последовательности. Хотя концептуально большинство людей, вероятно, ожидают «автогенерируемого» столбца, а не значения «по умолчанию». - person Clockwork-Muse; 30.11.2012