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 中国語 Web サイトの他の関連記事を参照してください。