ожидается одно из следующего: ПРОВЕРИТЬ ОГРАНИЧЕНИЕ ОТЛОЖЕННОЕ ИСКЛЮЧИТЬ ИНОСТРАННЫЙ ИНИЦИАЛЬНО, КАК НЕ ПЕРВИЧНЫЙ УНИКАЛЬНЫЙ идентификатор - PullRequest
1 голос
/ 06 мая 2020

Я создаю SQL для новой таблицы в Intellij IDE, и эта показывает мне предупреждение:

ожидалось одно из следующего: ПРОВЕРИТЬ ОГРАНИЧЕНИЕ ОТЛОЖЕННОЕ ИСКЛЮЧИТЬ ИСКЛЮЧИТЬ ИНОСТРАННОЕ ПЕРВОНАЧАЛЬНО КАК НЕ ПЕРВИЧНОЕ УНИКАЛЬНОЕ идентификатор

Мой скрипт выглядит так:

create sequence sch_name.table_name_id_seq 
increment 1 start 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1;

create table sch_name.table_name (
    id bigint not null default nextval('sch_name.table_name_id_seq'::regclass),
    name character varying(20),
    constraint table_name_pkey primary key (id)
);

Скрипт работает очень хорошо, но меня беспокоит предупреждение Intellij: Я совершу ошибку? или это просто бессмысленное предупреждение, и его следует игнорировать?

1 Ответ

1 голос
/ 06 мая 2020

Вы определили последовательность? Это работает :

create sequence table_name_id_seq;

create table roles (
    id bigint not null default nextval('table_name_id_seq'::regclass),
    name character varying(20),
    constraint table_name_pkey primary key (id)
);

Я бы не рекомендовал использовать для этого последовательности. Postgres имеет лучшие методы:

create table roles (
    id bigint not null generated always as identity,
    name character varying(20),
    constraint table_name_pkey primary key (id)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...