Diskuze: MySQL Error 1452

Ostatní jazyky SQL SQL a databáze MySQL Error 1452

Avatar
Posix
Člen
Avatar
Posix:

Zdravím, mám 2 sql soubory. create.sql pro vytvoření tabulek v databázi a insert.sql pro vložení záznamů. Jenže při vkládání záznamů se zobrazí chyba 1452 (Cannot add or update a child row: a foreign key constraint fails (%s)). Dřív jsem měl všechno v jednom souboru a jelo to. Teď při rozdělování jsem asi něco blbě napsal a nemůžu přijít, kde je chyba. Žádnou tam prostě nevidím :(

Create: http://pastebin.com/0w5HyVxp
Insert: http://pastebin.com/0w5HyVxp

Celá chyba:

Chyba

SQL-dotaz:

INSERT INTO penalty (id, driver_id, offence_id, penalty_date, payment_date) VALUES (1, 1, 9, '1996-11-30', '1996-11-30'), (2, 1, 6, '1988-12-04', '1991-03-13'), (3, 1, 3, '1982-01-31', NULL), (4, 3, 5, '1979-10-22', '1980-05-06'), (5, 4, 9, '1984-07-30', NULL), (6, 4, 2, '1984-11-21', '1987-03-22'), (7, 4, 8, '1994-07-09', '1994-09-23'), (8, 5, 0, '2012-04-22', NULL), (9, 5, 6, '2009-07-01', NULL), (10, 6, 8, '2005-02-23', NULL), (11, 8, 2, '1992-10-17', '1993-10-05'), (12, 8, 8, '2013-09-02', NULL), (13, 9, 3, '1993-10-16', '1995-06-23'), (14, 10, 1, '1997-10-22', '1999-10-17'), (15, 10, 7, '1997-09-05', NULL), (16, 10, 0, '1989-02-14', '1989-02-14'), (17, 11, 1, '1989-03-13', '1992-06-18'), (18, 11, 0, '1997-10-20', NULL), (19, 13, 6, '2013-03-17', NULL), (20, 13, 2, '1994-09-30', NULL), (21, 14, 2, '2012-02-23', NULL), (22, 16, 4, '1979-11-17', NULL), (23, 17, 4, '2011-04-28', '2011-04-28'), (24, 17, 0, '2004-06-16', '2004-06-16'), (25, 17, 8, '2007-10-01', NULL), (26, 20, 8, '200[...]

MySQL hlásí: Dokumentace
#1452 - Cannot add or update a child row: a foreign key constraint fails (`iis`.`penalty`, CONSTRAINT `penalty_ibfk_2` FOREIGN KEY (`offence_id`) REFERENCES `offence` (`id`) ON DELETE CASCADE)
Editováno 8.12.2013 16:12
Odpovědět 8.12.2013 16:10
Proč to dělat jednoduše, když to jde složitě.
Avatar
Posix
Člen
Avatar
Posix:

EDIT (původní příspěvek nešel upraivt):
Insert: http://pastebin.com/RdHf3upf
Tady je ta chyba

Chyba

SQL-dotaz:

INSERT INTO penalty (driver_id, offence_id, penalty_date, payment_date) VALUES (1, 7, '2004-03-09', NULL), (2, 7, '2008-05-28', '2008-08-01'), (2, 3, '2013-09-07', NULL), (3, 1, '1975-11-09', '1976-02-25'), (3, 4, '1999-03-03', '1999-03-03'), (3, 7, '2000-05-01', NULL), (4, 4, '1984-03-28', '1985-09-07'), (5, 1, '2006-03-03', '2006-05-10'), (7, 1, '2003-05-14', NULL), (7, 4, '2010-10-22', '2014-08-16'), (7, 9, '2001-11-05', NULL), (8, 4, '2000-10-17', NULL), (8, 2, '2001-09-18', NULL), (8, 5, '2002-07-12', NULL), (9, 1, '2007-03-16', '2007-11-29'), (9, 9, '1973-09-07', NULL), (10, 7, '2009-09-03', NULL), (10, 2, '2007-05-02', NULL), (10, 9, '2010-01-31', '2011-08-09'), (11, 6, '2010-11-26', NULL), (11, 0, '2010-10-11', '2010-12-14'), (13, 2, '2003-03-02', NULL), (13, 6, '2011-07-29', '2011-07-29'), (13, 6, '2011-07-25', NULL), (14, 0, '2011-08-01', NULL), (14, 1, '2012-07-15', '2013-08-25'), (15, 7, '1989-10-21', '1993-07-01'), (15, 0, '2001-02-20', NULL), (15, 6, '1990-05-29', NULL)[...]

MySQL hlásí: Dokumentace
#1452 - Cannot add or update a child row: a foreign key constraint fails (`iis`.`penalty`, CONSTRAINT `penalty_ibfk_2` FOREIGN KEY (`offence_id`) REFERENCES `offence` (`id`) ON DELETE CASCADE)
Editováno 8.12.2013 16:15
Nahoru Odpovědět 8.12.2013 16:14
Proč to dělat jednoduše, když to jde složitě.
Avatar
Posix
Člen
Avatar
Posix:

Ok asi se pujdu zabit... Cely vikend nic a jen co sem napisu, tak hned si vsimnu, ze u jednoho id mam 0, ale vsechny id v databazi jsou od 1.. :(

Nahoru Odpovědět  +2 8.12.2013 16:42
Proč to dělat jednoduše, když to jde složitě.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Posix
Kit:

Kdyby jen u jednoho...

Nahoru Odpovědět 8.12.2013 16:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.