2016-05-18 4 views
2

テーブルに列を追加して別の列にインデックスを作成しようとしています)それは、エラーがスローされます:子行を追加または更新できません:外部キー制約が失敗しました( `dbName`.#sql-e77_7`

Cannot add or update a child row: a foreign key constraint fails (`dbName`.`#sql-e77_7`, CONSTRAINT `fkName` FOREIGN KEY (`column`) REFERENCES `targetTable` (`targetColumn`) ON DELETE CASCADE ON UPDATE CASC) 

誰もが「#のSQL-e77_7が」生成されたなかったことをどのように私には説明でき

答えて

1

親が見つからない場合は、行を追加または更新することはできません、あなたは?親を含む行を挿入し、子を挿入する必要があります。

ここに例文 私はこれを持っていますこの例では、親テーブル内の2つのテーブルexerciceとexercice_entite

CREATE TABLE exercice 
(
    exercice_id serial NOT NULL, 
    date_debut date, 
    date_fin date, 
    exercice_etat text, 
    exercice_code text, 
    CONSTRAINT exercice_pkey PRIMARY KEY (exercice_id) 
) 

CREATE TABLE exercice_entite 
(
    id_exercice_entite serial NOT NULL, 
    id_exercice_pere integer, 
    code_entite_filiale character varying(10), 
    etat_exercice_entite text, 
    code_exercice_entite text, 
    code_entite_mm character varying(10), 
    CONSTRAINT exercice_entite_pkey PRIMARY KEY (id_exercice_entite), 
    CONSTRAINT exercice_entite_code_entite_filiale_fkey FOREIGN KEY (code_entite_filiale) 
     REFERENCES entite_filiale (code_entite_filiale) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT exercice_entite_code_entite_mm_fkey FOREIGN KEY (code_entite_mm) 
     REFERENCES entite_mm (code_entite) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 
    CONSTRAINT exercice_entite_id_exercice_pere_fkey FOREIGN KEY (id_exercice_pere) 
     REFERENCES exercice (exercice_id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
) 

は、表exercice_entiteの各行は、テーブルexerciceへの参照id_exercice_pere外部キーを持っているのでexerciceは、子テーブルがexercice_entiteあります。挿入された行

+0

でid_exercice_pereの値に等しいexercice_idを持ってexercice内の行がある場合exercice_entite mysqlのチェックに新しい行を挿入する前に、あなたは親と子のためにあなたの答えやサイトの例を

更新できます?それは非常に高く評価されるだろう! :D – Jhn

+0

ヒントをありがとう。それを解決!問題は、新しい列が「null不可能」に設定されていたため、mysqlは他のテーブルに欠けていた整数値を設定することでした。 – Jhn

関連する問題