2016-12-12 17 views
0

従属(テーブル管理者)とメインテーブル(部門)を外部キーでバインドすることはできません。MySQL Workbench。エラー1452:子行を追加または更新できません。外部キー制約は失敗します。操作が失敗しました

実行:

ALTER TABLE `grocery_supermarket_manager`.`administrator` 
ADD CONSTRAINT `AdministratorDepartment_FK` 
    FOREIGN KEY (`id_department`) 
    REFERENCES `grocery_supermarket_manager`.`department` (`id_department`) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE; 

操作は失敗しました: これは、次のメッセージが表示され、データベースにSQLスクリプトを適用中にエラーが発生しました。

ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`grocery_supermarket_manager`.`#sql-9ac_8`, CONSTRAINT `AdministratorDepartment_FK` FOREIGN KEY (`id_department`) REFERENCES `department` (`id_department`) ON DELETE CASCADE ON UPDATE CASCADE) 
SQL Statement: 
ALTER TABLE `grocery_supermarket_manager`.`administrator` 
ADD CONSTRAINT `AdministratorDepartment_FK` 
    FOREIGN KEY (`id_department`) 
    REFERENCES `grocery_supermarket_manager`.`department` (`id_department`) 
    ON DELETE CASCADE 
    ON UPDATE CASCADE 

列名: "id_department" 表 "部門は" 持っている:

  • データ型 - INT(10)
  • ストレージ:主キー、NOT NULL、ユニーク、符号なし、オートインクリメントを。

列名: "id_department" テーブル "管理者" している:

  • データ型 - INT(10)
  • ストレージ:NULLでない、符号なし。
+0

あなたのコードと例外をスクリーンショットの代わりに質問に加えてください。 – MSeifert

答えて

0

テーブルの現在のデータが追加する制約を完全に満たしていることを確認してください。無効な部門IDを持つ管理者がいるようです。

+0

はい、ありがとうございます! テーブル管理者のid_departmentフィールドにエラーがありました。無効なID部門。このため、彼は外部キー管理者(id_department)を作ることができませんでした - 部門(id_department) 私はもっと注意する必要があります。 –

関連する問題