Как связать последовательность с полем с PostgreSQL? - PullRequest
0 голосов
/ 07 февраля 2019

В документации postgreSQL 9.6 сказано, что для получения последовательного эквивалента мы должны связать последовательность с полем.

https://www.postgresql.org/docs/9.6/datatype-numeric.html (¤ 8.1.4)

Iточно применил тот же код:

CREATE SEQUENCE seq_import_trame INCREMENT 1 START 1; 

CREATE TABLE import_trame (
    id integer NOT NULL DEFAULT nextval('seq_import_trame'), 
    ...,
    CONSTRAINT pk_import_trame PRIMARY KEY (id)
);
ALTER SEQUENCE seq_import_trame OWNED BY import_trame.id;

Но у меня возникла ошибка при выполнении скрипта с pgAdmin.

Отношение "seq_import_trame" уже существует ".
Код: 42P07
Строка8: ALTER SEQUENCE .....

Это очень странно, потому что ошибка 42P07 - duplicate_table. И если мы не создадим ссылку, последовательность не будет отброшена при удалении таблицы.

Есть идеи?

1 Ответ

0 голосов
/ 07 февраля 2019

Не вижу проблем с БД Fiddle:

Схема (PostgreSQL v9.6)

CREATE SEQUENCE seq_import_trame INCREMENT 1 START 1; 

CREATE TABLE import_trame (
    id integer NOT NULL DEFAULT nextval('seq_import_trame'), 
    CONSTRAINT pk_import_trame PRIMARY KEY (id)
);
ALTER SEQUENCE seq_import_trame OWNED BY import_trame.id;

Просмотр на БД Fiddle

Проверьте еще раз свой сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...