首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除Spring /Hibernate: ORA-01407:无法更新到空

删除Spring /Hibernate: ORA-01407:无法更新到空
EN

Stack Overflow用户
提问于 2016-03-10 11:33:43
回答 1查看 3K关注 0票数 1

我试图使用deleteAll()方法从数据库中删除特定表中的行

当我这样做时,我得到了与我的狗表,行DOG_OWNER有关的错误:

代码语言:javascript
运行
复制
ORA-01407: Cannot update DOG_OWNER to Null

修复仅仅是为了删除该行上的not-null constraint,还是有其他解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-10 17:23:05

下面是一个简化的场景,它使用FOREIGN KEY而不是NULLable,并使用ON DELETE SET NULL进行约束,这将导致在删除引用的键后报告的错误。

在这种情况下,确实有助于解除外键上的NOT NULL约束。

代码语言:javascript
运行
复制
create table dog_owner 
(id number);
alter table dog_owner add  primary key (id);
insert into dog_owner values (1);

create table dog 
(id number,
dog_owner_id number not null); -- foreign key is not nullable ..
alter table dog add  primary key (id);
alter table dog add  foreign key (dog_owner_id) references dog_owner(id) 
ON DELETE SET NULL; -- but the contrains sets is to null...

insert into dog values (1,1);
commit;

delete from dog_owner where id = 1;

-- SQL-Fehler: ORA-01407: cannot update ("SCHEMA_NAME"."DOG"."DOG_OWNER_ID") to NULL 

alter table dog modify (dog_owner_id number  null);

delete from dog_owner where id = 1;

-- 1 rows deleted
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35915314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档