ugrás a tartalomhoz

InnoDB idegen kulcs + ondelete trigger MyISAM táblával

ppshungary · 2010. Nov. 28. (V), 14.38
Sziasztok!

A problémám a következő:

Táblák:
news Innodb - PK = news_id
news_comment Innodb - PK = comment_id; FK=news.news_id
news_comment_content MyISAM - K=comment_id , FT=comment_text

Van egy táblám (news), aminek van egy child táblája (news_comment).
Az első tábla híreket, a második a hírekhez kapcsolódó hozzászólásokat tárolja.
Mivel InnoDB-ben nincs fulltext index, ezért a hozzászólások szövegét külön
MyISAM táblában (news_comment_content) tárolom.

A news_comment tábla az alábbi kikötést tartalmazza:

ADD CONSTRAINT `news_comment_ibfk_1` FOREIGN KEY (`news_id`) REFERENCES `news` (`news_id`) ON DELETE CASCADE ON UPDATE CASCADE
A kikötés értelmében, ha törlök egy hírt (news), akkor törli a hozzátartozó hozzászólásokat (news_comment).

Mivel az InnoDB engine nem enged fulltext indexet használni a hozzászólások szövegét egy külön (MyISAM) táblában (news_comment_content) tárolom. A tényleges szövegeket meg akarom jelölni, ha a hozzászólást törölték így az alábbi triggert hoztam létre a news_comment táblán:

CREATE TRIGGER `delete_comment` BEFORE DELETE ON `news_comment` FOR EACH ROW update news_comment_content set flag=10 where news_comment_content.comment_id=OLD.comment_id
Ez tökéletesen működik, ha törlök egy rekordot a news_comment táblából, de nem működik, ha a hírt törlöm (news) és életbe lép a fent említett kikötés.

Gondolom a probléma ott van, hogy a trigger eseménye nem következik be.
Azt is gondolom, hogy erre van magyarázat...

Kérek segítséget,
Előre is köszönöm!