四、外键约束的实际例子
前面,我们已经定义了两个IndoDB表,并将其作为博客应用程序的构造块。现在,我们要做的是,每当有博客更新和删除时,同时更新和删除博客对应的所有评论。
我们将通过具体的代码加以演示。 因此,假设存储在blogs表中的唯一的博客数据需要更新,那么有关评论也得同时更新,这时我们可以通过一个UPDATE语句来完成这一任务,代码如下所示:
UPDATE blogs SET id = 2, title = 'Title of the first blog entry', content = 'Content of the first blog entry', author = 'John Doe' WHERE id = 1
您可能猜到了,对第一个博客数据项的更新将自动地引起与该博客有关的评论的更新。现在,让我们利用如下所示的SQL查询来删除博客:
DELETE FROM blogs WHERE id = 2
这时,MySQL会替我们删除有关的评论。现在,我们已经看到了外键约束在维护多个表的关系的一致性方面给我们带来的帮助。是不是很方便呀?还等什么,您也动手试一试吧!
五、小结
在本文中,我们为向读者详细介绍了如何在更新和删除父表数据的同时,触发有关子表数据的级联更新和删除操作。如您所见,当使用InnoDB表的时候,借助于外键约束就可以轻松搞定这一过程。
需要说明的是,到目前为止,对示例数据库表的操作,他们都是手工通过SQL命令进行的,然而,在基于web的环境中,则需要利用某种服务器端语言来跟MySQL打交道。其中,PHP就是一个不错的选择,所以,我们将在下一篇文章中讨论如何通过PHP 5使用外键约束。