2016-10-25 12 views
-3

親テーブルに必要な情報を既に追加していますが、外部キーに問題があります。スキーマと、親テーブルに外部キーが存在することを示すselectステートメントと、子テーブルに新しいデータを挿入するエラーを示します。1452 - 子行を追加または更新できません:外部キー制約が失敗します

+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table | Create Table                                                                                                                                                               | 
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| chhymnal | CREATE TABLE `chhymnal` (<br> 
    `CHhymnalID` int(5) unsigned NOT NULL,<br> 
    `Title` varchar(30) DEFAULT NULL,<br> 
    `CHNumber` int(5) unsigned DEFAULT NULL,<br> 
    `Type` varchar(1) DEFAULT NULL,<br> 
    `WorshipItemType` varchar(30) DEFAULT NULL,<br> 
    `DateLastSung` date DEFAULT NULL,<br> 
    `HighNote` varchar(5) DEFAULT NULL,<br> 
    `UseThisWeek` tinyint(1) DEFAULT NULL,<br> 
    `ServiceOrder` int(2) unsigned DEFAULT NULL,<br> 
    `StartKey` varchar(2) DEFAULT NULL,<br> 
    `EndKey` varchar(2) DEFAULT NULL,<br> 
    `Tempo` int(1) unsigned DEFAULT NULL,<br> 
    `TimeSig` varchar(7) DEFAULT NULL,<br> 
    `CCLINumb` varchar(10) DEFAULT NULL,<br> 
    PRIMARY KEY (`CHhymnalID`)<br> 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |<br> 
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 

セット内の1行(0.00秒)

MariaDB [scannedmusic]> MariaDB [scannedmusic]>番組表chimagesを作成します。セットで

+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table | Create Table                                                                                  | 
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| <br>chimages | CREATE TABLE `chimages` (<br> 
    `CHImageID` int(5) unsigned NOT NULL,<br> 
    `ImagePath` varchar(50) DEFAULT NULL,<br> 
    `Instrument` varchar(30) DEFAULT NULL,<br> 
    `CHhymnalID` int(5) DEFAULT NULL,<br> 
    PRIMARY KEY (`CHImageID`),<br> 
    CONSTRAINT `fk_images` FOREIGN KEY (`CHImageID`) REFERENCES `chhymnal` (`CHhymnalID`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+<br> 
1 row in set (0.00 sec) 
MariaDB [scannedmusic]> SELECT * FROM `chhymnal` WHERE `CHhymnalID` = 343; 
+------------+-------------------------+----------+------+-----------------+--------------+----------+-------------+--------------+----------+--------+-------+---------+----------+ 
| CHhymnalID | Title     | CHNumber | Type | WorshipItemType | DateLastSung | HighNote | UseThisWeek | ServiceOrder | StartKey | EndKey | Tempo | TimeSig | CCLINumb |<br> 
+------------+-------------------------+----------+------+-----------------+--------------+----------+-------------+--------------+----------+--------+-------+---------+----------+ 
|  343 | What a Day That Will Be |  762 | h | Hymn   | 0000-00-00 | Db  |   0 |   12 | Ab  | Ab  |  3 | 3/4  |   | 
+------------+-------------------------+----------+------+-----------------+--------------+----------+-------------+--------------+----------+--------+-------+---------+----------+ 

1行(0.00秒)

MariaDB [scannedmusic]> INSERT INTO <br>Chimages(`CHImageID`,`ImagePath`,`CHhymnalID`) VALUES (393, "\\BMP\\762_o1.bmp",343); 

ERROR 1452(23000):子行を追加または更新できません:。外部キー 制約が失敗した(scannedmusicchimages、CONSTRAINT fk_images FOREIGN KEY(CHImageIDchhymnalCHhymnalID)を参照)

+0

する必要がありますあなたに戻って。 –

答えて

0

間違った列が表示されています。テーブルchhymnalには行がありませんchhymnalid = 393です。

あなたSELECT文は、chhymnalテーブルからあなたchhymnalidをチェックしていることを示唆しているが、あなたの外部キー制約は、あなたのINSERT文で393値を持つchimageidに取り組んでいます。

は、2つのオプションがあります - のいずれかに該当する必要があります:あなたが外部キー制約を作成するときに入力した内容のものとあなたは間違って列名を持つchhymnal

  • テーブルでchhymnalid = 393とは行がない

    1. 参照外部キー制約で、あなたは3つの嫌い(またはモード)を使用して投稿を削除した場合、それは あなたの評判ポイントをbになるchhymnalid代わりのchimageid
  • 関連する問題