Durchsetzung der referenziellen Integrität in InnoDB-Tabellen
Fremdschlüsseleinschränkungen in InnoDB-Tabellen gewährleisten die Datenintegrität, indem sie das Löschen referenzierter Datensätze verhindern. Nach Massendatenänderungen kann es jedoch erforderlich sein, zu überprüfen, ob die Fremdschlüsseleinschränkungen noch intakt sind.
InnoDB bietet keine integrierte Methode, um eine erneute Überprüfung der Fremdschlüssel zu erzwingen. Es kann jedoch eine benutzerdefinierte gespeicherte SQL-Prozedur erstellt werden, um diese Aufgabe auszuführen.
Benutzerdefinierte gespeicherte SQL-Prozedur
Die folgende gespeicherte Prozedur, ANALYZE_INVALID_FOREIGN_KEYS, kann zur Analyse aller verwendet werden Tabellen innerhalb einer Datenbank und identifizieren alle ungültigen Fremdwörter Schlüssel:
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 ;
Verwendung
Um die gespeicherte Prozedur zu verwenden, führen Sie die folgende Abfrage aus:
CALL ANALYZE_INVALID_FOREIGN_KEYS('%', '%', 'Y');
Dadurch werden alle Tabellen analysiert die aktuelle Datenbank und speichert alle ungültigen Fremdschlüsselverletzungen in einer temporären Tabelle mit dem Namen INVALID_FOREIGN_KEYS.
Ergebnisse interpretieren
Die Tabelle INVALID_FOREIGN_KEYS enthält die folgenden Informationen für jeden ungültigen Fremdschlüssel:
EINSCHRÄNKUNGEN
Beachten Sie, dass dieses Verfahren die folgenden Einschränkungen aufweist:
Das obige ist der detaillierte Inhalt vonWie überprüfe ich die referenzielle Integrität in InnoDB-Tabellen nach Massendatenänderungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!