Foreign f*cking keys
Åhhh - eksperter!Jeg er ved at blive desperat over MySQL.
Jeg har 4 tabeller (eller, jeg har flere - men lige nu er det kun dem der er relevante).
De ser sådan her ud:
create table regnskabspost (
postid int not null auto_increment,
dato Date,
belob double,
beskrivelse varchar(100),
betalt boolean,
primary key (postid))
create table konto (
kontoid int not null auto_increment,
navn varchar(45),
beskrivelser varchar(100),
primary key (kontoid))
create table betalingsform (
betalingsformid int not null auto_increment,
titel varchar(25),
beskrivelse varchar(75),
primary key (betalingsformid))
create table postering (
postid int not null,
kontoid int not null,
betalingsformid int not null,
primary key(postid, kontoid, betalingsformid),
foreign key (postid) references postering(postid),
foreign key (kontoid) references konto(kontoid),
foreign key (betalingsformid) references betalingsform(betalingsformid))
Jeg forsøger så at insert'e en ny regnskabspost, og dermed en ny postering der knytter regnskabsposten sammen med konto- og betalingsformoplysninger.
Første step er fx.:
insert into regnskabspost (dato, belob, beskrivelse, betalt) values ('2010-5-14', 200.0, 'Test', true);
Herfra udtrækker jeg det nye postid, lad os sige det er 1 (det virker, har testet) - som så bruges til andet step:
insert into postering (postID, kontoID, betalingsformID) values ( 1, 3, 2);
MEN - ved andet insert får jeg fejl "Cannot add or update a child row: a foreign key constraint fails (`ocalc`.`postering`, CONSTRAINT `postering_ibfk_1` FOREIGN KEY (`postid`) REFERENCES `postering` (`postid`))"
Hvorfor? Jeg begriber det simpelthen ikke.
Det hele er i øvrigt kodet i java, hvis det skulle have nogen relevans...
På forhånd tak for hjælpen!
/Ditte