欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle外键约束实现教程

程序员文章站 2022-03-25 08:00:06
1、在创建表时设置外键约束 涉及两个表中字段关系的约束 创建主表 create table typeinfo (typeid varchar2(10) primary key, typename v...

1、在创建表时设置外键约束

涉及两个表中字段关系的约束

创建主表

create table typeinfo

(typeid varchar2(10) primary key,

typename varchar2(20) );

创建从表

create table userinfo_f

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10) references typeinfo(typeid) );

insert into typeinfo values(1,1);

insert into typeinfo_f(id,typeid_new) values(1,1);

insert into typeinfo_f(id,typeid_new) values(2,null);

“““““““““““““““““““““““““““““““`

create table userinfo_f2

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10),

constraint fk_typeid_new foreign key(typeid_new) references typeinfo(typeid) );

通过级联删除来创建外键约束

create table userinfo_f3

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10),

constraint fk_typeid_new1 foreign key(typeid_new) references typeinfo(typeid) on delete cascade );

2、在修改表时添加外键约束

create table userinfo_f4

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10) );

alter table userinfo_f4

add constraint fk_typeid_alter foreign key(typeid_new) references typeinfo(typeid);

3、删除外键约束

查看约束的名字,类型,状态

select constraint_name,constraint_type,status from user_constraints where table_name=’userinfo_4’;

(1) 禁用(启用)外键约束(disable/enable)

alter table userinf0_4

disable constraint fk_typeid_alter;

select constraint_name,constraint_type,status from user_constraints where table_name=’userinfo_4’;

(2) 彻底删除外键约束

alter table userinf0_4

drop constraint fk_typeid_alter;