我有两张table,一张,二张。表2用外键连接到表1。我想从表1中删除一行,而不丢失表2中的数据。如何解决这个问题,我尝试用一个触发器消除主键或外键约束,但是一个错误说我要删除的表不存在!!
wlsrxk511#
有多种方法可以做到这一点:1-删除外键约束(alter table table2 drop constraint fk\ U column)2-对表1使用软删除3-使table2外键为空,并使用“on delete set null”
aoyhnmkz2#
你不能两全其美。也就是说,引用值所在的位置不能有外键定义。但当引用的值被删除时,它不会抱怨。外键约束的目的是强制数据完整性。一种React是您实际上没有外键约束。所以,不要这样声明。很明显,你有一个专栏 table2 这只是对表1'的一个兼职引用。 不过,出于您的特殊目的,我建议您考虑软删除。也就是说,有个旗子就是table1为了isDeleted或者更好,deletionDatetime. 那你就可以把那一排放进去了table1` ,有一个全职外键引用,不必担心关系的完整性。
table2
表1'的一个兼职引用。 不过,出于您的特殊目的,我建议您考虑软删除。也就是说,有个旗子就是
为了
或者更好,
. 那你就可以把那一排放进去了
2条答案
按热度按时间wlsrxk511#
有多种方法可以做到这一点:
1-删除外键约束(alter table table2 drop constraint fk\ U column)
2-对表1使用软删除
3-使table2外键为空,并使用“on delete set null”
aoyhnmkz2#
你不能两全其美。也就是说,引用值所在的位置不能有外键定义。但当引用的值被删除时,它不会抱怨。
外键约束的目的是强制数据完整性。
一种React是您实际上没有外键约束。所以,不要这样声明。很明显,你有一个专栏
table2
这只是对表1'的一个兼职引用。 不过,出于您的特殊目的,我建议您考虑软删除。也就是说,有个旗子就是
table1为了
isDeleted或者更好,
deletionDatetime. 那你就可以把那一排放进去了
table1` ,有一个全职外键引用,不必担心关系的完整性。