エラー: 外部キー制約違反 – 親行の削除
ジョブ レコード (DELETE FROM jobs WHERE job_id = 1 LIMIT 1;
など) を削除しようとすると、エラー #1451:「親行を削除または更新できません: 外部キー制約が失敗しました」が発生します。これは、advertisers
テーブルに jobs
テーブルの advertiser_id
.
データベーススキーマ:
データベースには次のテーブルが含まれています:
advertisers
:
advertiser_id
(主キー)name
、password
、email
、address
、phone
、fax
、session_token
advertisers_ibfk_1
jobs.advertiser_id
を参照する外部キー制約 jobs
:
job_id
(主キー)advertiser_id
(外部キー)name
、shortdesc
、longdesc
、address
、time_added
、active
、moderated
解決策: 外部キー制約を一時的に非アクティブ化します
この解決策には、外部キー チェックを一時的に無効にして削除を許可し、その後再度有効にしてデータの整合性を維持することが含まれます。
<code class="language-sql">SET FOREIGN_KEY_CHECKS = 0; -- Disable foreign key checks DELETE FROM `jobs` WHERE `job_id` = 1 LIMIT 1; -- Delete the problematic job record SET FOREIGN_KEY_CHECKS = 1; -- Re-enable foreign key checks</code>
この方法では、データベース全体の参照整合性を維持しながら削除できます。 外部キーのチェックを無効にした場合の影響を慎重に検討し、絶対に必要な場合にのみこのアプローチを使用してください。
以上がジョブ レコードを削除できないのはなぜですか: 外部キー制約違反?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。