4.foreign key约束
描述:一个表中foreign key指向另一个表中的primary key。(外键)
foreign key约束用于预防破坏表之间连接的动作。
foreign key约束也能防止非法数据插入外键列,因为它必须指向的那个表中的值之一。
数据库:MySQL
语法:
create table persons2
(
id int not null,
persons1_id int,
primary key (id),
foreign key (persons1_id) references persons1(id)
)
----persons1_id为表persons2的一个外键,他与persons1表里的id字段对应
数据库:SQL Server /Oracle/MS Access
create table persons2
(
id int not null primary key,
persons1_id int foreign key references persons1(id)
)
----persons1_id为表persons2的一个外键,他与persons1表里的id字段对应
如果需要命名foreign key约束,以及为多个列定义foreign key约束,请使用下面的SQL:
数据库:MySQL/SQL Server/Oracle/MS Access
语法:
create table persons2
(
id int not null,
persons1_id int ,
primary key (id),
constraint fk_persons1_persons2_id foreign key (persons1_id) references persons(id)
)
----persons1_id为表persons2的一个外键,他与persons1表里的id字段对应。fk_persons1_persons2_id为外键约束的名称。
如果在persons2表已存在的情况下为“persons1_id”列创建foreign key约束,请使用下面的sql:
数据库:MySQL/SQL Server/Oracle/MS Access:
alter table persons2
add foreign key (persons1_id) references persons1(id)
如果需要命名foreign key约束,以及为多个列定义foreign key约束,请使用下面sql语法:
数据库:MySQL/sql server /oracle/ms access
alter table persons2
add constraint fk_persons1_persons2_id foreign key (persons1_id) references persons1(id)
撤销foreign key约束
数据库:MySQL
alert table persons2 drop foreign key fk_persons1_persons2_id
数据库:Sql Server/Oracle/MS Access:
alter table persons2 drop constraint fk_persons1_persons2_id