Oracle 12c с автоинкрементом - PullRequest
0 голосов
/ 28 января 2019

Итак, у меня есть следующая таблица:

CREATE TABLE car (
  id                                NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, 
  (...)
  PRIMARY KEY (ID)
);

Затем я добавил новый столбец:

CREATE SEQUENCE car_sequence START WITH 1;
ALTER TABLE car ADD id_internal NUMBER DEFAULT car_sequence.nextval NOT NULL;

Как я могу принудительно установить автоинкремент для id_internal (при вставке) на основе следующего значения из car_sequence?Триггер единственный выход?

1 Ответ

0 голосов
/ 28 января 2019

, когда я пытаюсь вставить новую строку, я получаю: ORA-01400: cannot insert NULL into ("car"."id_internal")

Это, похоже, ошибка 18110491 , которая влияет на 12.1.0.1 и 12.1.0.2.Он зафиксирован в PSU за октябрь 2017 года (и в 12cR2), поэтому, если у вас есть контракт на поддержку, без которого вы все равно не сможете увидеть отчет об ошибке, вы можете применить его (или более поздний вариант).Это хорошо работает для меня в моей системе 12cR1, с более свежим блоком питания.

...