数据库外键约束?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库外键约束?相关的知识,希望对你有一定的参考价值。
参考技术A数据库外键约束:这个是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。
外键的概念:外键是关系数据库三个完整性的五个约束条件之一,是表与表之间建立的一种关系。在Oracle数据库的scott/tiger用户中,表Dept和Emp通过外键进行了关联。在这里Dept表叫主表,Emp表叫从表,外键是字段Deptno。
加入外键的条件:
1、两个表有相同属性字段,取值范围相同;
2、外键在主表中是主键或者是唯一字段;
3、外键可以是多个字段的组合。
数据库系统本身约束手段是更可靠的。对于开发来说,可能觉得建立外键关系没必要,但是到了以后维护阶段,或升级阶段,如果没有这个关系,可能不利维护工作的提升。表关系的建立,也阐述着具体的业务逻辑关系,增加了可读性。
在逻辑性,关联性比较强的时候不妨添加。其他时候简单的外键约束也是可以的,不需要一有关系就添加,但是要有其他机制保证数据完整性,毕竟外键对于开发有时候还是有限制。总的来说前期开发可以不管,后期维护尽量转移到数据库本身的约束来建立关系。
SQL中如何为表添加外键约束
-〉INDEX(category_id),
->
FOREIGN
KEY
(category_id)
REFERENCES
categories
(category_id),
->
CONSTRAINT
fk_member
FOREIGN
KEY
(member_id)
REFERENCES
members
(member_id),
->
PRIMARY
KEY(article_id)
范例中的添加外键约束就是这种形式
如果是概念的问题,直接参考书籍,一般添加外键约束,主要在创建表中. 参考技术A Java代码
[CONSTRAINT
<约束名>][FOREIGN
KEY][<列名>]REFERENCES<被参照表名>(<主键列名>)例如
Java代码
--删除外键
alter
table
AdItem
drop
constraint
AdOrder_AdItem_FK1
--增加外键
alter
table
AdItem
add
constraint
AdOrder_AdItem_FK1
foreign
key
(AI_nOrderNo)
references
AdOrder
(AO_nOrderNo)
--不检查约束
alter
table
AdItem
nocheck
constraint
AdOrder_AdItem_FK1
--检查约束
alter
table
AdItem
check
constraint
AdOrder_AdItem_FK1
以上是关于数据库外键约束?的主要内容,如果未能解决你的问题,请参考以下文章