django.db.utils.DatabaseError: ORA-30673: изменяемый столбец не является столбцом идентификаторов - PullRequest
0 голосов
/ 28 апреля 2018

спасибо всем, У меня есть проект Django, это моя среда:

База данных : Oracle Database 12c Enterprise Edition, выпуск 12.1.0.2.0 - 64-разрядная версия

Python : Python 3.5.1rc1 сх-Oracle 6.3 == Джанго == 2.0.4

Я пытаюсь это:

 python manage.py test

Я получаю эту ошибку:

django.db.utils.DatabaseError: ORA-30673: column to be modified is not an identity column

Спасибо.

1 Ответ

0 голосов
/ 28 апреля 2018

Похоже, что вы пытаетесь установить столбец в качестве столбца идентификаторов, используя команду ALTER TABLE. Oracle, однако, говорит вам, что вы не можете сделать это.

Пример:

Создать таблицу:

create table test (id number);

Эта команда вызывает ORA-30673:

alter table test modify id number generated by default on null as identity;

Вам следует создать новый столбец идентификаторов:

alter table test add id_new number generated by default on null as identity;

Затем скопировать данные в новый столбец, если необходимо:

update test set id_new = id;

Удалить старый столбец ID:

alter table test drop column id;

Переименуйте новый столбец в старое имя:

alter table test rename column id_new to id;

Ожидаются проблемы, если старый столбец идентификатора был первичным ключом, используемым при применении ограничений внешнего ключа.

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