Cannot add/update a child row a foreign key constraint fails

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • nowherebound123
  • Registratie: Mei 2009
  • Laatst online: 23:09
Tweakers,

Ik probeer in mijn MySQL database een relatie tussen 2 velden in 2 verschillende tabellen toe te voegen zodat ik in my query's met inner joins kan gaan werken. Dat heb ik in het verleden vaker gedaan en ik heb er nooit problemen gehad, nu loop ik echter tegen het volgende aan.

De 2 tabellen waar het om gaat zijn stagemanagement_opties en stagemanagement_gebruikers.

In gebruikers is natuurlijk een veld gebruikerID en in stagemanagement_opties is een veld optieGebruikerID waarin wordt opgeslagen welke gebruiker de optie heeft gemaakt. Verder is gebruikerID de primary key van stagemanagement_gebruikers.

Het is de bedoeling dat ik een verwijzing maak tussen optieGebruikerID en gebruikerID zodat ik met de volgende query de optie met bijbehorende gebruiker kan ophalen vanuit PHP:

code:
1
2
3
4
5
SELECT * FROM stagemanagement_opties AS o, stagemanagement_gebruikers AS g
            
WHERE o.optieGebruikerID = g.gebruikerID
                        
AND o.optieStageID =  ".mysql_real_escape_string($_GET["stageID"]).";


Nu loop ik echter bij het uitvoeren van deze query:

code:
1
ALTER TABLE stagemanagement_opties ADD FOREIGN KEY(optieGebruikerID) REFERENCES stagemanagement_gebruikers(gebruikerID)


Tege deze error aan:

code:
1
#1452 - Cannot add or update a child row: a foreign key constraint fails (`gildevenray_stagesys/#sql-158c_6e54`, CONSTRAINT `#sql-158c_6e54_ibfk_2` FOREIGN KEY (`optieGebruikerID`) REFERENCES `stagemanagement_gebruikers` (`gebruikerID`))


De hele database is innoDB en er is nog nergens een relatie gelegd met gebruikerID of optieGebruikerID.

Heeft iemand wellicht een idee hoe dit kan komen?

Alvast bedankt,

Nils Kuijpers

Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 21-09 08:50
Staat er al data in die tabellen, die niet voldoen aan de constraints? (Oude data bijvoorbeeld)

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Je weet zeker dat alle gereferencede id's ook daadwerkelijk bestaan? :)

Zorg er ook voor dat alle datatypen exact hetzelfde zijn, dus als het integers zijn, let dan op de lengte en of ze signed of niet zijn :)

Acties:
  • 0 Henk 'm!

  • LazySod
  • Registratie: Augustus 2003
  • Laatst online: 19-09 09:12

LazySod

Scumbag with a mission

Heb je al eens gekeken of er in de tabel stagemanagement_opties een record voorkomt met een optieGebruikerID dat niet bestaat in stagemanagement_gebruikers? Als dat zo is moet je dat eerst repareren anders zul je de key-constraint nooit kunnen opvoeren.

*edit* spuit 13 ... lol

[ Voor 5% gewijzigd door LazySod op 26-05-2009 11:09 . Reden: spuit 13 ]

Proof is the idol before whom the pure mathematician tortures himself. (Sir Arthur Eddington)


Acties:
  • 0 Henk 'm!

  • nowherebound123
  • Registratie: Mei 2009
  • Laatst online: 23:09
creator1988 schreef op dinsdag 26 mei 2009 @ 11:05:
Staat er al data in die tabellen, die niet voldoen aan de constraints? (Oude data bijvoorbeeld)
Bedankt voor de snelle reacties heren :)

Er stonden 2 entries in de tabellen, na deze even geleegd te hebben is het probleem niet meer aanwezig en werkt alles naar behoren.

Bedankt! _/-\o_