Deux clés étrangères référence à une table SUR la mise à JOUR de SET NULL ne fonctionne pas

J'en ai deux clés étrangères dans la table. Supposons que le tableau est appelé News et a les clés étrangères updatedById et createdById, qui pointe à userId dans le tableau Users.

Maintenant je veux mettre à NULL clés étrangères lorsqu'un utilisateur est supprimé, mais lorsque je tente de régler ON DELETE SET NULL dans les relations j'obtiens:

L'introduction de la contrainte de CLÉ ÉTRANGÈRE 'FK_News_Users' sur la table 'News' peut
cause de cycles ou de plusieurs en cascade des chemins. Spécifier on DELETE NO ACTION ou
On UPDATE NO ACTION, ou modifier d'autres contraintes de CLÉS ÉTRANGÈRES.

Je ne comprends pas pourquoi les deux clés étrangères ne pouvez pas définir la valeur null?

  • Pouvez-vous poster le complet SQL DDL pour la table "News" et les "Utilisateurs"?
  • Aussi la marque de la question avec le sgbd que vous utilisez. (SQL Server, Oracle, MySQL, PostgreSQL, etc.)
  • exemple de base de données: dl.dropbox.com/u/105509493/test.sql essayez de modifier la relation: FK_News_Users_updated - SUR SUPPRIMER pour Définir la valeur Null et économisez. Vous verrez que l'erreur.
  • Vous êtes donc en permettant aux orphelins News dossiers d'exister sans les propriétaires? Cela fait-il sens?
  • S'il vous plaît ne pas envisager d'en comprendre le sens, mais le problème. Ce tableau ne sont pas mes vraies tables, j'ai créé cet échantillon afin de simplifier le problème. Btw. cet exemple a un sens, parce que l'utilisateur peut être supprimé, mais la nouvelle doit le rester.
  • Normalement dans des situations de ce genre vous préférez supprimer l'utilisateur logiquement physiquement par l'introduction d'un indicateur (par exemple, Active ou Supprimés). De cette façon, toutes les relations rester intacte et peut être analysé de façon rétrospective.
  • très bonne idée, j'ai pensé aussi à ce sujet...