1外键的作用,主要有两个:
一个是让数据库自己通过外键来保证数据的完整性和一致性
一个就是能够增加er图的可读性
2外键的配置
1)先创建一个主表,代码如下:
#创建表student,并添加各种约束
create
table
student
(
id
int
primary
key
,
#主键约束
name
varchar(20)
,
#唯一约束
age
int
not
null,
#非空约束
sex
varchar(2)
,
address
varchar(20)
default
'重庆'
#默认约束
)
;
再通过一个外键,创建一个分数表,这样的话,就可以方便查询。代码如下:
#创建分数表
create
table
score
(
id
int
primary
key
,
sid
int
,
china
int
,
history
int,
english
int,
constraint
fk_sid
foreign
key(sid)
references
student(id)
#通过外键创建链接
)
;
创建外键的方法有很多,其中最常见创建外键的格式是:constraint
fk_
foreign
key()
references
链接的外表
删除外键:
alter
table
drop
foreign
key
'外键名'
注意:
只有在定义外键时,用constraint
外键名
foreign
key
方便进行外键的删除
一张表中的主键只能有一个,外键可以有多个,如果一张表中多个列都需要被别的表的外键参考,需要使用候选码(非空并且唯一),具体到你的这个问题的需求可以考虑用如下方法解决:
把a表中的bookid和authorid都设置为非空并且唯一,即
create table a(bookid int not null unique, authorid int not null unique);
然后在book表和author表中就可以分别设置外键来参照a表中两个不同的字段了。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table'
2 在d出的对话框中找到“Foreign Keys”,然后单机。
3 然后会出现一个设置外键的界面,一共有七列。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null
4 设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table’。如下图:
2 在d出的对话框中找到“Foreign Keys”,然后单机。如下图:
3 然后会出现一个设置外键的界面,一共有七列。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null。如图
4 设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键。k如图:
1、登录phpmyadmin,找到要删除外键的数据库的表。如果是本地的话一般是localhost/phpmyadmin。
2、使用 SHOW CREATE TABLE at_article 查出表的结构,其中at_article是你要删除外键的表名。
3、查来之后,是一个简单的显示,点击“选项”,然后选择“完整内容”,然后点执行,就可以看到完整的表结构。
4、从最后一行里找到外键约束,其中fk_at_article_at_type为外键值。
5、删除外键ALTER TABLE at_article DROP FOREIGN KEY fk_at_article_at_type。
6、如果外键字段不再使用,可以在表中删除外键的字段。
以上就是关于如何在MySQL中设置外键约束以及外键的作用全部的内容,包括:如何在MySQL中设置外键约束以及外键的作用、mysql建立外键时,多对多如何建立、phpMyAdmin里怎么设置外键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)