Beste leden,
Mijn db heeft een tabel met daarin een foreignkey (text_ban_id). Toch hebben niet alle records in de parent tabel (data) een relatie met de child tabel en probeer ik de foreignkey insert te omzeilen.

mijn parent tabel:

CREATE TABLE data 
( 
`data_id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL, `q_id` int(11) NOT NULL, 
`answer` varchar(255) NOT NULL, 
`text_ban_id` int(11) NOT NULL DEFAULT '-1', 
INDEX (user_id, q_id, text_ban_id), 
FOREIGN KEY (user_id) REFERENCES users (user_id), 
FOREIGN KEY (q_id) REFERENCES questions (q_id), 
FOREIGN KEY (text_ban_id) REFERENCES text_banner (text_ban_id), PRIMARY KEY (`data_id`)
)
ENGINE=INNODB


Bij al mijn pogingen:

INSERT INTO data (user_id, q_id, answer, text_ban_id) VALUES ('1','1','0','')
INSERT INTO data (user_id, q_id, answer) VALUES ('1','1','0')


krijg ik de welbekende error :

#1452 - Cannot add or update a child row: a foreign key constraint fails (`hoofdonderzoek/data`, CONSTRAINT `data_ibfk_3` FOREIGN KEY (`text_ban_id`) REFERENCES `text_banner` (`text_ban_id`))

Hoe kan ik hiermee omgaan?
Alvast bedankt!


Het is al gelukt. Met het toestaan van NULL in het text_ban_id veld en dan 'null' inserten wanneer FK niet bestaat. Lukte alleen niet eerder op de dag door foute phpsyntax (enkele en dubbele quotes probleem).

Reageren