Maison > Article > base de données > Comment vérifier l'intégrité référentielle dans les tables InnoDB après des modifications de données en masse ?
Application de l'intégrité référentielle dans les tables InnoDB
Les contraintes de clé étrangère dans les tables InnoDB garantissent l'intégrité des données en empêchant la suppression des enregistrements référencés. Cependant, après des modifications massives de données, il peut être nécessaire de vérifier que les contraintes de clé étrangère sont toujours intactes.
InnoDB ne fournit pas de méthode intégrée pour le forcer à revérifier les clés étrangères. Cependant, une procédure stockée SQL personnalisée peut être créée pour effectuer cette tâche.
Procédure stockée SQL personnalisée
La procédure stockée suivante, ANALYZE_INVALID_FOREIGN_KEYS, peut être utilisée pour analyser tous tables dans une base de données et identifier tout étranger non valide clés :
DELIMITER $$ DROP PROCEDURE IF EXISTS ANALYZE_INVALID_FOREIGN_KEYS$$ CREATE PROCEDURE `ANALYZE_INVALID_FOREIGN_KEYS`( checked_database_name VARCHAR(64), checked_table_name VARCHAR(64), temporary_result_table ENUM('Y', 'N')) LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA BEGIN -- ... (stored procedure code) ... END$$ DELIMITER ;
Utilisation
Pour utiliser la procédure stockée, exécutez la requête suivante :
CALL ANALYZE_INVALID_FOREIGN_KEYS('%', '%', 'Y');
Cela analysera toutes les tables de la base de données actuelle et stocke toutes les violations de clé étrangère non valides dans une table temporaire nommée INVALID_FOREIGN_KEYS.
Interprétation des résultats
La table INVALID_FOREIGN_KEYS contiendra les informations suivantes pour chaque clé étrangère invalide :
LIMITATIONS
Notez que cette procédure présente les limitations suivantes :
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!