龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

MySQL外键和参照完整性的联系

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
MySQL 外键可以保证数据库的参照完整性,让数据库变得更简单。而参照完整性是数据库设计中最重要的概念之一。 参照完整性(完整性约束)是数据库设计中的一个重要概念,当数据库中

MySQL外键可以保证数据库的参照完整性,让数据库变得更简单。而参照完整性是数据库设计中最重要的概念之一。

参照完整性(完整性约束)是数据库设计中的一个重要概念,当数据库中的一个表与一个或多个表进行关联时都会涉及到参照完整性。比如下面这个例子:
文章分类表 -    categories
category_id       name
1                 SQL Server
2                 Oracle
3                 PostgreSQL
5                 SQLite

文章表 - articles
article_id        category_id       title
1                 1                 aa
2                 2                 bb
3                 4                 cc

可见以上两个表之间是通过category_id,其中categories表有4条记录,articles表有3条记录。

然而可能因为某种原因我们删掉了categories 表中category_id=4的记录,而articles表却还是有一条category_id=4的记录,很明显,category_id=4的这条记录不应该存在在articles表中,这样会很容易造成数据错乱。

相反,MySQL外键关系(Foreign Key relationships)讨论的是父表(categories)与子表(articles)的关系,通过引入MySQL外键(Foreign Key)这个概念来保证参照完整性(Referential integrity),将使会数据库变的非常简单。比如,要要做到删除categories表中category_id=4记录的同时删除 articles 表中category_id=4的所有记录,如果没有引入MySQL外键的话,我们就必须执行2条SQL语句才行;如果有外键的话,可以很容易的用一条SQL语句就可以达到要求。
 

带参数的MySql存储过程

取得MySQL表信息的语句

mysql UPDATE语句的使用方法

mysql插入Clob字段的实例

常见MySql字段的默认长度


精彩图集

赞助商链接