2

我正在制作一个具有以下内容的数据库:

  • Artist桌子
  • CD引用艺术家的表。

我希望这样的情况是,当Artist从数据库中删除时,CD他们所做的不能被自动删除,但仍然应该可以删除Artist他们所做的。

我是一个新手 MySQL 编码器,我认为这与ON DELETE CASCADE/RESTRICT/SET NULL或类似的东西有关,但不是 100% 肯定,但我很确定它不是 ON DELETE CASCADE

4

2 回答 2

2

如果要保留 CD 记录,则需要在删除艺术家之前将其父(艺术家)的外键字段设置为 NULL(或不同的艺术家记录)。在 MySQL 中,您可以使用 ON DELETE SET NULL 自动将外键设置为 NULL。

你应该考虑你是否真的想要这样做——它会让你的数据处于一种奇怪的状态。为什么您需要删除艺术家而不是其对应的 CD?

于 2012-11-26T19:30:59.200 回答
0

您应该首先删除对要删除的艺术家的所有引用,然后删除艺术家应该没有问题。如果仍有对该对象的引用,则不能删除该对象。

于 2012-11-26T19:25:54.240 回答