在 InnoDB 表中強制引用完整性
InnoDB 表中的外鍵約束透過防止刪除引用記錄來確保資料完整性。然而,在批量資料修改之後,可能需要驗證外鍵約束是否仍然完好。
InnoDB 沒有提供內建方法來強制其重新檢查外鍵。但是,可以建立自訂 SQL 預存程序來執行此任務。
自訂 SQL 預存程序
下列預存程序 ANALYZE_INVALID_FOREIGN_KEYS可用於分析所有資料庫中的表格並識別任何無效的外部鍵:
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 ;
用法
要使用儲存過程,請執行以下查詢:
CALL ANALYZE_INVALID_FOREIGN_KEYS('%', '%', 'Y');
這將分析中的所有表格目前資料庫並將任何無效的外鍵違規儲存在名為的臨時表中INVALID_FOREIGN_KEYS。
解釋結果
INVALID_FOREIGN_KEYS 表將包含每個無效外鍵的以下資訊:
限制
請注意,此過程有以下限制:
以上是批次資料修改後如何驗證InnoDB表中的參考完整性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!