oracle constraint概念

  1. 创建了两张表test1和test2,没有任何约束,索引
    select constraint_name,constraint_type,uc. from user_constraints uc where table_name=‘TEST2’;
    select * from user_cons_columns where table_name=‘TEST1’ and constraint_name = ‘CK_ID1’;
    在这里插入图片描述2. alter table test2 add constraint ck_ID unique/primary(priv);
    *经测试,在上面建unique key or primary key,之后建立外键都会成功

  2. alter table test1 add constraint ck_ID3 foreign key(priv) references test2(priv);
    *外键建立成功。父表:test2. 子表:test1

  3. 父表中没有‘4’,如果在子表中插入‘4’,将会报错
    在这里插入图片描述
    在默认的Oracle外键配置条件下,只要有子表记录存在,父表记录是不允许修改或者删除的。子表记录也必须时刻保证参照完整性。
    以下是启动和禁止约束
    4 oracle中外键约束名在user_constraints中可以查到,其中constrait_typ = 'R’是外键
    alter table TableName disable constraint constrait_name
    alter table TableName enable constraint constrait_name
    cascad用法:http://blog.csdn.net/kadwf123/article/details/8067381

当朋友问我外键的作用是什么时,我也愣了一下,平常都是在这么用,还没有真正的总结过,外分键的作用呢.下面,我总结了一下外键的作用(转载https://blog.csdn.net/u012468263/article/details/49815789):

外键 (FK) 是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。

FOREIGN KEY 约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了,则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。

外键是用来控制数据库中数据的数据完整性的

就是当你对一个表的数据进行操作

和他有关联的一个或更多表的数据能够同时发生改变

这就是外键的作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值