insert foreignkey onder voorbehoud?
niVin
02/07/2009 11:54:00Beste 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:
Bij al mijn pogingen:
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!
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
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
(
`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:
Code (php)
1
2
2
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')
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!
Gewijzigd op 01/01/1970 01:00:00 door NiVin
PHP hulp
29/04/2024 09:54:52niVin
03/07/2009 13:16:00Het 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).