谢谢大家,
我有一个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/