3

MySQLのテーブルに外部キーを作成しようとしていますが、どの検索でもほとんど情報がないように見える奇妙なエラーが発生します。

私はこれでキーを作成しています(mysqlワークベンチ5.2から出力されます):

ALTER TABLE `db`.`appointment` 
  ADD CONSTRAINT `FK_appointment_CancellationID`
  FOREIGN KEY (`CancellationID` ) REFERENCES `db`.`appointment_cancellation` (`ID` )
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
, ADD INDEX `FK_appointment_CancellationID` (`CancellationID` ASC) ;

その時点でエラーが発生します:

エラー1452:子行を追加または更新できません:外部キー制約が失敗します(alarmtekcore。、CONSTRAINT FK_lead_appointment_CancellationIDFOREIGN KEY(CancellationID)REFERENCES lead_appointment_cancellation( `)

ここをチェックしました

しかし、テーブルにはデータがありません。

4

2 に答える 2

4

親テーブルにまだ存在しない既存のデータを含む列に外部キー制約を適用することはできません。

次を実行して予定_キャンセルテーブルにデータを入力すると、後で外部キーを適用できるはずです。

INSERT INTO appointment_cancellation
SELECT DISTINCT a.CancellationID
  FROM appointment
于 2010-06-08T22:18:49.180 に答える
0

2 つのフィールド - appointment. CancellationIDappointment_cancellationID- まったく同じタイプである必要があります。1 つが INT で、もう 1 つが INT UNSIGNED の場合、このエラーが発生します。

于 2010-06-08T22:24:48.383 に答える