gpt4 book ai didi

java - 使用 Spring 数据/Hibernate 删除 : ORA-01407: Cannot update to Null

转载 作者:行者123 更新时间:2023-11-29 04:49:35 28 4
gpt4 key购买 nike

我正在尝试使用 CRUD Repository 中的 deleteAll() 方法从我的数据库中删除某个表中的行。

当我这样做时,我收到与我的 DOG 表相关的错误,DOG_OWNER 行:

ORA-01407: Cannot update DOG_OWNER to Null

修复只是删除此行上的 not-null 约束,还是有其他解决方法?

最佳答案

下面是一个简化的场景,其中 FOREIGN KEY 不可为 NULL,并且使用 ON DELETE SET NULL 进行约束,这导致在删除 后报告错误引用键

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

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

关于java - 使用 Spring 数据/Hibernate 删除 : ORA-01407: Cannot update to Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35915314/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com