sql—删除表引用的行

jtw3ybtb  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(412)

我有两张table,一张,二张。表2用外键连接到表1。我想从表1中删除一行,而不丢失表2中的数据。如何解决这个问题,我尝试用一个触发器消除主键或外键约束,但是一个错误说我要删除的表不存在!!

wlsrxk51

wlsrxk511#

有多种方法可以做到这一点:
1-删除外键约束(alter table table2 drop constraint fk\ U column)
2-对表1使用软删除
3-使table2外键为空,并使用“on delete set null”

aoyhnmkz

aoyhnmkz2#

你不能两全其美。也就是说,引用值所在的位置不能有外键定义。但当引用的值被删除时,它不会抱怨。
外键约束的目的是强制数据完整性。
一种React是您实际上没有外键约束。所以,不要这样声明。很明显,你有一个专栏 table2 这只是对表1'的一个兼职引用。 不过,出于您的特殊目的,我建议您考虑软删除。也就是说,有个旗子就是table1为了isDeleted或者更好,deletionDatetime. 那你就可以把那一排放进去了table1` ,有一个全职外键引用,不必担心关系的完整性。

相关问题