編集:Mysqlエラー#1452 - 子行を追加または更新できません
私の問題は、異なるエンジンを使用していたテーブルのためです。使用されるテーブルチャートMyISAMとChartdataはInnoDBを使用しました。
私は非常に単純なDBモデルを持っていますが、何らかの理由で私は外来キーが機能しなくなっています。私はこのエラーを取得する私は、MySQL WorkbenchでDBを作成していると私はchartdata内の行を追加しようとすると、私はIDが3と4で「チャート」テーブルに2つの行を持っている:
INSERT INTO `charts`.`Chartdata` (
`idChartdata` ,
`param1` ,
`param2` ,
`Chart_id`
)
VALUES (
NULL , '2012-01-10 05:00:00', '58', '3'
)
#1452 - Cannot add or update a child row: a foreign key constraint fails (
チャート.
Chartdata , CONSTRAINT
fk_Chartdata_Chart FOREIGN KEY (
Chart_id ) REFERENCES
チャート(
idChart ) ON DELETE CASCADE ON UPDATE CASCADE)
私は、外部キーが存在することを確信している、と私は(マイナー変更で)テーブルを再作成するsevereal回を試してみました。 DBモデルへ
リンク:http://i.stack.imgur.com/qKZlh.png
これはphpMyAdminにからSQLダンプです:
CREATE TABLE IF NOT EXISTS `Chartdata` (
idChartdata
のint(11)NOT NULL AUTO_INCREMENT、 param1
VARCHAR(500)のDEFAULT NULL、 param2
varchar(500)DEFAULT NULL、 Chart_id
int(11)NOT NULL、 プライマリキー(idChartdata
、Chart_id
)、 KEY fk_Chartdata_Chart
(Chart_id
) )ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 10;
ALTER TABLE Chartdata
のADD CONSTRAINT fk_Chartdata_Chart
FOREIGN KEY(Chart_id
)UPDATE CASCADE ON DELETE CASCADE ON Chart
(idChart
)を参照。
質問に失敗したSQL INSERT文を含めることはできますか? –
私は質問に追加しました。 –
私の問題は、異なるエンジンを使用しているテーブルのためです。使用されるテーブルチャートMyISAMとChartdataはInnoDBを使用しました。 –