Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在制作一个具有以下内容的数据库:
Artist
CD
我希望这样的情况是,当Artist从数据库中删除时,CD他们所做的不能被自动删除,但仍然应该可以删除Artist他们所做的。
我是一个新手 MySQL 编码器,我认为这与ON DELETE CASCADE/RESTRICT/SET NULL或类似的东西有关,但不是 100% 肯定,但我很确定它不是 ON DELETE CASCADE。
如果要保留 CD 记录,则需要在删除艺术家之前将其父(艺术家)的外键字段设置为 NULL(或不同的艺术家记录)。在 MySQL 中,您可以使用 ON DELETE SET NULL 自动将外键设置为 NULL。
你应该考虑你是否真的想要这样做——它会让你的数据处于一种奇怪的状态。为什么您需要删除艺术家而不是其对应的 CD?
您应该首先删除对要删除的艺术家的所有引用,然后删除艺术家应该没有问题。如果仍有对该对象的引用,则不能删除该对象。