web-dev-qa-db-fra.com

différence entre cascade et restreindre? Base de données SQL DDL

Quelqu'un pourrait-il me dire ce que signifie exactement une cascade et une restriction? C'est dans les systèmes de base de données soumis à la partie DDL

et si je n'en écris aucun dans ma déclaration de suppression?

22
user3102872

ON DELETE CASCADE et ON DELETE RESTRICT sont la propriété de clé étrangère et vous les définissez lorsque vous créez la relation entre deux tables.

Si vous définissez la relation sur ON DELETE CASCADE, lorsque vous exécutez une instruction DELETE sur une table parent, elle supprimera automatiquement toutes les lignes correspondantes de la table CHILD. Mais le RESTRICT (qui est le comportement de relation de clé étrangère par défaut) est lorsque vous essayez de supprimer une ligne de la table parent et qu'il y a une ligne dans la table enfant avec le même ID, il ne se plaindra pas des lignes enfant existantes.

Dans tous les cas, vous n'avez rien à mentionner dans votre clause DELETE.

J'ai également écrit un article de blog sur les différentes règles pour les commandes Supprimer et Mettre à jour plus en détail ici:

https://koukia.ca/sql-server-foreign-key-update-and-delete-rules-556cf09117fe

52
Aram

Il existe trois types de suppression associés à une clé étrangère

  1. Lors de la suppression de la cascade: lorsque les données sont supprimées d'une table parent, les données sont automatiquement supprimées de la table enfant (table de clés étrangères).
  2. Sur Delete set Null: lorsque les données sont supprimées d'une table parent, la cellule associée à la clé étrangère sera nulle dans une table enfant.
  3. Lors de la suppression de la restriction: lorsque des données sont supprimées d'une table parent et qu'une clé étrangère est associée à la table enfant, cela donne une erreur, vous ne pouvez pas supprimer l'enregistrement.
17
Aditya Parmar

À droite, donc ON DELETE et ON UPDATE s'appliquent à la table/ligne parent. Si NO ACTION et RESTRICT sont la même chose, c'est parce que vous ne pouvez pas avoir de relation avec un enfant et un parent si le parent n'existe pas.

0
elifares