谢谢大家,
我有一个django项目,这是我的环境:

数据库:
Oracle Database 12c企业版12.1.0.2.0版-64位生产

蟒蛇:
的Python 3.5.1rc1
cx-Oracle == 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


谢谢。

最佳答案

看来您正在尝试使用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;


如果旧的ID列是用于执行外键约束的主键,则会出现问题。

关于python - django.db.utils.DatabaseError:ORA-30673:要修改的列不是标识列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50079258/

10-09 17:08