ORACLE APEX / SQL РАЗРАБОТЧИК: Невозможно получить PK для автоинкремента - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь внедрить свою базу данных SQLDeveloper в Oracle APEX. Я не могу понять, как получить автоматическое увеличение PK в моей таблице, начиная с определенного значения (например, 400001). Я пытался создавать триггеры и последовательности, но когда я пытаюсь добавить строку, используя форму в APEX, мой ПК по какой-то причине увеличивается с 40.

Вот мой результат для формы APEX введите описание изображения здесь

Вот как он вставляется в SQL Разработчик введите описание изображения здесь

В принципе, может кто-нибудь описать мне, как я могу редактировать существующий триггер, или создайте последовательность, которая бы делала application_id для автоинкремента новой записи на 1.

Спасибо!

1 Ответ

0 голосов
/ 10 апреля 2020

Найти максимум application_id:

select max(application_id) From your_Table;

Предположим, это 400010 (как показано на скриншоте). Теперь воссоздайте последовательность (предполагая, что ее имя seq_app):

drop sequence seq_app;
create sequence seq_app start with 400011 increment by 1 nocache;

Скорее всего, триггер в порядке, так как вы видите значения, вставляемые в таблицу.

Примечание: последовательности будут быть уникальным, но не обязательно без пробелов. CACHE (или NOCACHE) может повлиять на это, но - для повышения производительности вы бы предпочли Oracle кэшировать порядковые номера (по умолчанию 20), что означает, что - если вы не используете некоторые из этих кэшированных чисел они будут потеряны. Я бы не волновался на твоем месте.

...