Quelle est la différence dans un FK MySQL entre RESTRICT
y NO ACTION
? D'après le document, ils semblent être exactement les mêmes. Est-ce le cas ? Si oui, pourquoi avoir les deux ?
Réponses
Trop de publicités?Extrait de la documentation MySQL : https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html
Certains systèmes de base de données ont différé contrôles, et
NO ACTION
est un différé différée. Dans MySQL, les contraintes des clés étrangères sont vérifiées immédiatement, doncNO ACTION
est la même chose queRESTRICT
.
Il doit être conforme à la syntaxe SQL standard. Comme le manuel dit : (c'est moi qui souligne)
PAS D'ACTION : Un mot-clé du SQL standard . Dans MySQL, équivalent à RESTRICT. Le serveur MySQL rejette l'opération de suppression ou de mise à jour de la table parente s'il existe une valeur de clé étrangère liée dans la table référencée. Certains systèmes de base de données ont des contrôles différés, et AUCUNE ACTION n'est un contrôle différé. Dans MySQL, les contraintes de clé étrangère sont vérifiées immédiatement, donc NO ACTION est identique à RESTRICT.