Вы можете проверить, есть ли у Postgresql ПОСЛЕДОВАТЕЛЬНОСТЬ для этого столбца, а затем, если для этого столбца установлено значение DEFAULT. В psql
попробуйте:
\d+ test_table
Вы должны увидеть что-то вроде этого:
id | integer | default nextval('test_table_id_seq'::regclass) |
Если нет default nextval('somethink')
, то вы должны проверить, есть ли последовательность для этого столбца:
\ds+
Вы должны увидеть что-то вроде этого:
public | test_table_id_seq | sequence
Если у вас не будет последовательности, у вас есть СОЗДАТЬ ее:
CREATE SEQUENCE test_table_id_seq;
И если у вас не будет следующего значения по умолчанию (somethink), вы должны использовать ALTER TABLE:
ALTER TABLE test_table ALTER COLUMN id SET DEFAULT nextval('test_table_id_seq');
Вы можете найти информацию об этом здесь: http://www.postgresql.org/docs/8.1/static/datatype.html#DATATYPE-SERIAL
Возможно, вы можете это понять, хотя английский не является моим родным языком ...