sql-ondelete级联连接表

6vl6ewon  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(327)

数据库中有三个表 Notes , Tags , NoteTagJoin 我在用 many to many 与存储在中的外键的数据库关系 NoteTagJoin 现在我知道你可以设置外键了 onCascade delete 据我所知我是否会删除 Note 全部 Tags 以及 NoteTagJoin 将删除与此关联的引用 Note ,但是有没有什么方法可以这样做呢 Notes 条目将被删除,引用将从 NoteTagJoin 但不是来自 Tags 因为其他注解可以使用oncascade delete具有相同的标记?

yvfmudvl

yvfmudvl1#

我想到的最简单的解决办法就是 ON DELETE CASCADE 用桥牌 NoteTagJoin . 然后,从 Notes 表将删除注解标记关联,但不会从 Tags table。
这就留下了一个问题,即可能挂起与任何注解都不相关的标记。但也许你可以运行一个定期的清理作业来删除这些文件,或者这些文件可以由某个人手动管理(例如,一个应用程序)。

zujrkrfu

zujrkrfu2#

是的,你可以

ALTER TABLE `notes_tags` 
  ADD FOREIGN KEY (`note_id`) REFERENCES `notes` (`id`) ON UPDATE CASCADE ON DELETE CASCADE,
  ADD FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON UPDATE CASCADE ON DELETE CASCADE ;

演示

相关问题