我正在创建一个包含以下内容的数据库:
Artist
表CD
表引用了艺术家。 我希望情况是,当从数据库中删除Artist
时,他们所做的CD
必须不会自动删除,但它仍然应该可以删除他们所做的Artist
。
我是一个新手MySQL编码器,我认为它与 ON DELETE CASCADE / RESTRICT / SET NULL 或类似的东西有关但不是100%肯定,我很确定它是 NOT ON DELETE CASCADE 虽然。
答案 0 :(得分:2)
如果要保留CD记录,则在删除Artist之前,需要将其外键字段设置为父(Artist)为NULL(或其他Artist记录)。在MySQL中,您可以使用ON DELETE SET NULL自动将外键设置为NULL。
您应该考虑是否真的想要这样做 - 它会使您的数据处于一种奇怪的状态。为什么需要删除艺术家而不是相应的CD?
答案 1 :(得分:0)
您应首先删除对要删除的艺术家的所有引用,然后删除艺术家应该没有问题。如果仍有对此对象的引用,则无法删除对象。