前提・実現したいこと
簡単なデータベースを作成しようと試みています。
テーブルにデータを挿入しようとするとエラーが発生します。
少し長くなりますが、問題点の指摘、訂正の方法をご教授願います。
発生している問題・エラーメッセージ
ERROR 1452(23000): Cannot add or update a child row: a foreign key constraint fails('db_b','parts',(CONSTRAINT 'parts_ibfk_1' FOREIGN KEY('maker_parts_id') REFERENCES 'maker'('id'))
countory, makerのデータは挿入できました。
partsのデータ挿入の際、上記のエラー文が表示されます。
また、countryをcountoryと間違えていますが、気にしないでいただけるとありがたいです。
SQL
1 2CREATE TABLE countory( 3 id INT AUTO_INCREMENT, 4 name VARCHAR(4) UNIQUE, 5 PRIMARY KEY(id) 6); 7 8CREATE TABLE maker( 9 id INT AUTO_INCREMENT, 10 name VARCHAR(20) UNIQUE, 11 year char(4), 12 countory_id INT, 13 updated_date TIMESTAMP, 14 PRIMARY KEY(id), 15 FOREIGN KEY (countory_id) REFERENCES countory (id) 16); 17 18CREATE TABLE parts( 19 id INT AUTO_INCREMENT, 20 name VARCHAR(20) UNIQUE, 21 maker_parts_id INT, 22 genre VARCHAR(20), 23 PRIMARY KEY(id), 24 FOREIGN KEY (maker_parts_id) REFERENCES maker(id) 25); 26 27CREATE TABLE maker_parts( 28 id INT AUTO_INCREMENT, 29 year CHAR(4), 30 maker_id INT, 31 parts_id INT, 32 updated_date TIMESTAMP, 33 PRIMARY KEY(id, maker_id, parts_id), 34 FOREIGN KEY(maker_id) REFERENCES maker(id), 35 FOREIGN KEY(parts_id) REFERENCES parts(id) 36); 37
SQL
1 2INSERT INTO maker(id,name,year,countory_id) VALUES 3 (1, 'SEYMOUR DUNCAN',1978,13), 4 (2, 'GOTOH', 1960,14), 5 (3, 'FENDER', 1946,13), 6 (4, 'GIBSON', 1902,13), 7 (5, 'MONTREUX', 2011,14), 8 (6, 'SCHALLER', 1945,15), 9 (7, 'DIMARZIO', 1975,13), 10 (8, 'EMG', 1976,13), 11 (9, 'BARTOLINI', 1973,13), 12 (10, 'GRAPHTECH', 1949,14), 13 (11, 'FLOYD ROSE', 1977,13), 14 (12, 'ALLPARTS', 1982,13); 15 16INSERT INTO countory(id,name) VALUES 17 (13, 'アメリカ'), 18 (14, '日本'), 19 (15, 'ドイツ'); 20 21INSERT INTO parts(id, name, maker_parts_id, genre) VALUES 22 (16, 'SH-4', 68873, 'pu'), 23 (17, 'SG381-07-L6', 166492, 'peg'), 24 (18, 'Fat Finger Guitar', 165036, 'etc'), 25 (19, 'p-90', 12345, 'pu'), 26 (20, '2009 HIST LP', 154170, 'puguard'), 27 (21, 'SECURITY LOCK Ni', 67627, 'straplock'), 28 (22, 'DP100 F-SPACE', 28238, 'pu'), 29 (23, 'Zakk Wylde Set', 32010, 'pu'), 30 (24, 'XTCT', 18767, 'pu'), 31 (25, 'PS-8000-00', 89710, 'bridge'), 32 (26, 'Tremolo R2 32', 7322, 'bridge'), 33 (27, 'BB-3350-001', 230899, 'bridge'); 34→ERROR 1452(23000): Cannot add or update a child row: a foreign key constraint fails('db-','parts',(CONSTRAINT 'parts_ibfk_1' FOREIGN KEY('maker_parts_id') REFERENCES 'maker'('id')) 35 36INSERT INTO maker_parts(id, year, maker_id, parts_id) VALUES 37 (28, 2007, 1, 68873), 38 (29, 2016, 2, 166492), 39 (30, 2011, 3, 165036), 40 (31, 2013, 4, 12345), 41 (32, 2015, 5, 154170), 42 (33, 2018, 6, 67627), 43 (34, 2017, 7, 28238), 44 (35, 2017, 8, 32010), 45 (36, 2017, 9, 18767), 46 (37, 2013, 10, 89710), 47 (38, 2014, 11, 7322), 48 (39, 2017, 12, 230899);

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。