Hoi,
Ik heb een foutmelding wat wijst op een foreign key problemen, maar heb die niet kunnen elimineren.
Hier is de situatie:
tabel artikel(PLU, prijs, omschrijving, enz.)
vb. (4023, 1.10, Cola blikje,...)
tabel werknemer(sofinummer, naam, enz.)
vb. (123456789, persa,...)
tabel verkooplijst(verkoop_id, PLU, sofinummer, verkoopprijs, enz.)
verkoop_id is AUTO_INCREMENT
verkooplijst PLU refereert naar artikel (cascade on update, restrict on delete)
verkooplijst sofinummer refereert naar werknemer (cascade on update, restrict on delete)
De db is van type InnoDB (om met foreign keys te kunnen werken)
De bedoeling is d.m.v. insert into...select de verkooplijst bij te werken waarbij de prijs automatisch wordt ingevuld.
Ik kom uit op deze statement:
INSERT INTO verkooplijst(PLU, sofinummer, verkoopprijs)
SELECT '4023', `sofinummer` FROM werknemer WHERE werknemer.sofinummer = '123456789', `prijs`FROM artikel WHERE artikel.PLU='4023';
Ik heb voor het gemak de rest van de atributen weggelaten, want in de fout melding krijg ik de gerefereerde kolommen terug. Het kan geen add of update doen omdat een foreignkey contraint fails.
Ik zou graag willen weten wat ik fout doe.
Ik heb een foutmelding wat wijst op een foreign key problemen, maar heb die niet kunnen elimineren.
Hier is de situatie:
tabel artikel(PLU, prijs, omschrijving, enz.)
vb. (4023, 1.10, Cola blikje,...)
tabel werknemer(sofinummer, naam, enz.)
vb. (123456789, persa,...)
tabel verkooplijst(verkoop_id, PLU, sofinummer, verkoopprijs, enz.)
verkoop_id is AUTO_INCREMENT
verkooplijst PLU refereert naar artikel (cascade on update, restrict on delete)
verkooplijst sofinummer refereert naar werknemer (cascade on update, restrict on delete)
De db is van type InnoDB (om met foreign keys te kunnen werken)
De bedoeling is d.m.v. insert into...select de verkooplijst bij te werken waarbij de prijs automatisch wordt ingevuld.
Ik kom uit op deze statement:
INSERT INTO verkooplijst(PLU, sofinummer, verkoopprijs)
SELECT '4023', `sofinummer` FROM werknemer WHERE werknemer.sofinummer = '123456789', `prijs`FROM artikel WHERE artikel.PLU='4023';
Ik heb voor het gemak de rest van de atributen weggelaten, want in de fout melding krijg ik de gerefereerde kolommen terug. Het kan geen add of update doen omdat een foreignkey contraint fails.
Ik zou graag willen weten wat ik fout doe.