PHP interesse |
|
Hallo mensen,
Ik heb een probleempje met het toepassen van het gebruik van foreign keys met cascade.
Ik heb 3 tabellen, blog, tag en blogtag.
In blog staan alle blogs met een primary id.
In tag staan alle tags met een primary id,
In blogtag staat de relatie tussen blog en tag met dus twee foreign id's (blog_id & tag_id).
Nu het probleem is dat wanneer ik een blog delete dat dan niet de relaties tussen blog & tag worden gedelete in de tabel 'blogtag' terwijl dat wel zou moeten zover ik weet.
Mijn tabellen zien er als volgt uit...
CREATE TABLE `blogtag` (
`blog_id` INT(4) NOT NULL,
`tag_id` INT(4) NOT NULL,
FOREIGN KEY (`blog_id`) REFERENCES `blog`(`blog_id`) ON DELETE CASCADE,
FOREIGN KEY (`tag_id`) REFERENCES `tag`(`tag_id`) ON DELETE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `blogtag` ( `blog_id` INT(4) NOT NULL, `tag_id` INT(4) NOT NULL, FOREIGN KEY (`blog_id`) REFERENCES `blog`(`blog_id`) ON DELETE CASCADE, FOREIGN KEY (`tag_id`) REFERENCES `tag`(`tag_id`) ON DELETE CASCADE ) ENGINE = InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `blog` (
`blog_id` INT(4) NOT NULL auto_increment,
PRIMARY KEY (`blog_id`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE `blog` ( `blog_id` INT(4) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`blog_id`) ) ENGINE = InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE `tag` (
`tag_id` INT(4) NOT NULL auto_increment,
PRIMARY KEY (`tag_id`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE `tag` ( `tag_id` INT(4) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`tag_id`) ) ENGINE = InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Iemand enig idee waarom de waardes in 'blogtag' niet worden gedelete?
|