我有一个表-线程-和另一个-帖子。
每个线程就像一个主题,帖子是回复。如果一个主题被删除,所有相关的帖子都需要被删除。
所有的帖子都有一个id和一个thread_id字段。这是我的资料,只是想知道这是否正确。
ALTER TABLE `posts`
ADD CONSTRAINT `FK_threads`
ADD FOREIGN KEY(`thread_id`)
REFERENCES `threads`(`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
这是否需要另一种方式,或者这是完全错误的?
基本正确。在FOREIGN KEY
之前不需要ADD
ALTER TABLE `posts`
ADD CONSTRAINT `FK_threads`
FOREIGN KEY(`thread_id`)
REFERENCES `threads`(`id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
这里是SQLFiddle显示DELETE CASCADE
和UPDATE CASCADE
的动作