0

こんにちは、私は mysql を初めて使用し、この問題に対して提案された他の修正をいくつか試しましたが、うまくいきませんでした! テーブル アプリケーションと顧客の間に外部キーを作成しようとしていますが、プログラムを実行するとエラー " cannot add or update a child row a foreign key constraint fails mysql" が発生します。私のプログラムはデータ キャプチャ フォームであり、データベースに情報を挿入するためのものです。

テーブル スキーマ:

アプリケーション テーブル:

applicationid mediumint(9)
covertype varchar(100)
customeremail varchar(100)

顧客テーブル:

customeremail varchar(100)
customerfname varchar(100)
applicationid mediumint(9)

いくつかの異なる方法で外部キーを設定しようとしました。

しかし、これはうまくいきませんでした。問題を解決する方法についてアドバイスをいただければ幸いです

4

1 に答える 1

0

その構文を試してください:

alter table application 
         add foreign key(customeremail) 
         references application(applicationid)

つまり、customeremailtableの column の値は、 tableの (少なくとも) 1 つの行の列に同じ値があるapplication 場合にのみ許可されます。applicationidapplication

背景によっては、それを「ポインター」と考えることができますが、リレーショナル代数の関係は双方向です。

さらに、これが機能するには、ターゲットにインデックスが必要です。ここで。. そうでない場合は、次のように記述します。applicationapplicationid

alter table application add index (applicationid)

私の推測では、これは必要ないはずapplicationidですPRIMARY KEY


ところで、ステファンがコメントで提案したように、あなたは「DBにかなり慣れていない」ので、データベースの正規化参照整合性に関する適切なドキュメントを確実に確認する必要があります。

于 2013-08-08T13:47:44.293 に答える