ホームページ > データベース > mysql チュートリアル > ジョブ レコードを削除できないのはなぜですか: 外部キー制約違反?

ジョブ レコードを削除できないのはなぜですか: 外部キー制約違反?

Patricia Arquette
リリース: 2025-01-14 16:17:44
オリジナル
568 人が閲覧しました

Why Can't I Delete a Job Record: Foreign Key Constraint Violation?

エラー: 外部キー制約違反 – 親行の削除

ジョブ レコード (DELETE FROM jobs WHERE job_id = 1 LIMIT 1; など) を削除しようとすると、エラー #1451:「親行を削除または更新できません: 外部キー制約が失敗しました」が発生します。これは、advertisers テーブルに jobs テーブルの advertiser_id.

を参照する外部キーがあるために発生します。

データベーススキーマ:

データベースには次のテーブルが含まれています:

  • advertisers:

    • advertiser_id (主キー)
    • namepasswordemailaddressphonefaxsession_token
    • advertisers_ibfk_1jobs.advertiser_id を参照する外部キー制約
  • jobs:

    • job_id (主キー)
    • advertiser_id (外部キー)
    • nameshortdesclongdescaddresstime_addedactivemoderated

解決策: 外部キー制約を一時的に非アクティブ化します

この解決策には、外部キー チェックを一時的に無効にして削除を許可し、その後再度有効にしてデータの整合性を維持することが含まれます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート