-1

私は、1 つの主キーと、同じデータベース内の他のテーブルの主キーである別の列を持つテーブルを持っています。

フォアギンキーを追加したいのですが、エラーが表示されます-

    #1452 - Cannot add or update a child row: a foreign key constraint fails
    (`c2cjobportal`.`#sql-114c_e3`,CONSTRAINT `fk_PerOrders
`FOREIGN KEY (`jobseekers_id`) REFERENCES `jobseekers` (`jobseekers_id`))

これは何が原因ですか?

私のSQLコードは -

ALTER TABLE `jobseekers_customprofile`
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (jobseekers_Id)
REFERENCES jobseekers(jobseekers_Id)
4

2 に答える 2

2

テーブルには既にいくつかのデータがあるようで、制約の追加を控えています。存在しない外部キーを参照している行がテーブルにある場合があります。テーブル データが参照できる状態であることを確認してください。

于 2013-06-08T09:22:02.557 に答える
2

あなたはやみくもに物事に従っていると思います。私は、w3cschool からコードをコピーしたことを完全に知っているだけでなく、あなたのコードを試してみました

使用したコードは

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

FOREIGN KEY 制約の命名を許可し、複数の列で FOREIGN KEY 制約を定義するには、次の SQL 構文を使用します。」 最初に読んでから物事に従ってください。急いではいけません。あなたがコピーして貼り付けて他のリソースを試しておらず、ここに質問を投稿したため、-1 を取得しました(もちろん、私からではなく、アクセス権がないことを示すことはできません)。

実際のことに来て -

SQLを投稿したコードを使用したシナリオは次のようになります-

ALTER TABLE `jobseekers_customprofile`
ADD CONSTRAINT FOREIGN KEY (jobseekers_Id)
REFERENCES jobseekers(jobseekers_Id)

条件として、データが既に存在する場合はうまくいかない可能性があるため、このクエリを実行する前にデータを確認してください。また、ON UPDATE CASCADE と DELETE ON CASCADE ON DELETE CASCADE ON DELETE DEFAULT を使用できます。

これらも参照してみてください

http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html

mysql 外部キー エラー #1452

Mysql エラー 1452 - 子行を追加または更新できません: 外部キー制約が失敗します

于 2013-06-08T15:35:04.430 に答える