gpt4 book ai didi

sql - 其他表有外键时如何删除表内行

转载 作者:行者123 更新时间:2023-12-05 06:27:10 25 4
gpt4 key购买 nike

这是我的表:(我正在使用 Oracle SQL)

FILM (Catalog_Num, Format, Title, Year, Number_Discs, Rating, Timing, Genre)
INVENTORY (Film_ID, Rental_Price, New, Date_In, Catalog_Num@, Store_Num@)

现在我想删除电影年份超过 2015 的行,所以我写道:

delete from film 
where catalog_num in(
select catalog_num
from film join inventory using (catalog_num)
where year >'2015';

但是,它显示了违反完整性约束的错误-找到子记录

我该如何解决这个问题?谢谢!

最佳答案

这取决于您要对 inventory 表中的记录做什么。

例如,您可以修改您的约束并添加删除级联,这样该记录将与其他记录一起删除。

CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
ON DELETE CASCADE

或者您设置on delete set null 这样 fk 将被设置为 null

CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
ON DELETE SET NULL

关于sql - 其他表有外键时如何删除表内行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55494986/

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