Maison >base de données >tutoriel mysql >Comment MySQL gère-t-il les contraintes ?

Comment MySQL gère-t-il les contraintes ?

PHPz
PHPzavant
2023-08-27 15:45:08668parcourir

MySQL 如何处理约束?

Comprenons comment MySQL gère les contraintes -

MySQL nous aide à gérer les tables transactionnelles (la restauration est autorisée) et les tables non transactionnelles (la restauration n'est pas autorisée (la restauration n'est pas autorisée)). C'est pourquoi MySQL gère les contraintes différemment des autres SGBD. Dans une base de données non transactionnelle, si une erreur se produit lors de l'insertion ou de la mise à jour de plusieurs lignes, il n'existe aucun moyen de revenir en arrière. Cette situation doit être gérée de la bonne manière.

MySQL Server génère des erreurs pour les requêtes qui détectent les erreurs lors de l'analyse de l'instruction qui doit être exécutée. Une fois qu'une erreur est détectée, il tente de récupérer de l'erreur lors de l'exécution de l'instruction. Cela n'est pas actuellement fait pour toutes les déclarations.

MySQL peut arrêter une instruction au milieu ou la récupérer et continuer lorsqu'une erreur se produit. Par défaut, le serveur récupère et continue.

Les clés étrangères permettent de croiser les données entre les tables, et les contraintes de clé étrangère permettent de garantir que ces données dispersées restent cohérentes.

Références de clés étrangères

MySQL prend en charge les références de clés étrangères ON UPDATE et ON DELETE dans les instructions CREATE TABLE et ALTER TABLE.

Opérations de référence

Les opérations de référence disponibles sont - RESTRICT, CASCADE, SET NULL et NO ACTION.

NO ACTION est l'opération de référence par défaut. La valeur

ENUM

ENUM doit être la valeur répertoriée dans la définition de la colonne, ou le numéro interne équivalent. La valeur ne peut pas être une valeur d'erreur (0 ou chaîne vide). Pour une colonne définie comme ENUM('a','b','c'), les valeurs autres que 'a', 'b' ou 'c', telles que '', 'd' ou 'ax' sont considéré comme invalide et rejeté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer