数据库: Oracle Database 12c企业版12.1.0.2.0版 - 64位生产
的Python : Python 3.5.1rc1 CX-甲骨文== 6.3 Django的== 2.0.4
我正在尝试这个:
python manage.py test
我收到此错误:
django.db.utils.DatabaseError: ORA-30673: column to be modified is not an identity column
感谢。
答案 0 :(得分:2)
您似乎正在尝试使用ALTER TABLE命令将列设置为标识列。但是,甲骨文告诉你,你不能这样做。
一个例子:
创建一个表格:
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;
如果旧ID列是主键,则会出现问题,用于强制执行外键约束。