MySQL的约束/级联:这将工作



我有一个表-线程-和另一个-帖子。

每个线程就像一个主题,帖子是回复。如果一个主题被删除,所有相关的帖子都需要被删除。

所有的帖子都有一个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 CASCADEUPDATE CASCADE的动作

最新更新