博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql——外键
阅读量:6983 次
发布时间:2019-06-27

本文共 791 字,大约阅读时间需要 2 分钟。

hot3.png

一,外键

    外键:foreign key,(外边的键,键不在本表中):如果一张表中有一个字段(非主键)指向另一张表的主键,则该字段称为外键。

二,增加外键

    外键可以在表创建时或创建完表之后增加(要kao虑数据的问题)。一个表可以有多个外键。

    创建表的时候增加外键,在所有表字段之后使用foregn key(外键字段) references 外部表(主键字段)

create table my_foreign1(id int primary key AUTO_INCREMENT,name varchar(20) comment'学生姓名',c_id int comment'学号', foreign key(c_id) REFERENCES my_class(id))charset utf_8 ;

    外键,要求字段本身就是一个索引(普通索引),如果字段本身没有索引,则外键会先创建一个索引,然后才会创建外键本身。

    在新增表之后增加外键,修改表结构:

alter table 表名 add contraint 外键名 foreign key(外键字段) references 父表(主键字段)

三,修改外键&删除外键

    外键不能修改,只能先删除后新增

    删除外键:

alter table 表名 drop foreign key 外键名 ;//一张表可以有多个外键,但是外键名不能相同

四,外键作用

    外键默认作用有两点:一个对父表,一个对子表,外键字段在子表中。

    对子表约束:如果在子表数据进行写操作的时候,如果对应的外键字段在父表中没有匹配,则操作失败。(约束子表数据写操作)。

    对父表约束:父表数据的写操作(删和改,都涉及到主键本身),如果对应的主键在子表中已经被数据引用,则不允许操作。

转载于:https://my.oschina.net/bugkiller/blog/657744

你可能感兴趣的文章
洛谷——P1403 [AHOI2005]约数研究
查看>>
为什么硬盘只能有四个主分区
查看>>
IT十八掌掌第二天课程总结
查看>>
职业SNS天际网:透视“屌丝文化” 解析当今职场
查看>>
Leetcode 29. Divide Two Integers
查看>>
Kubernetes 1.5集成heapster
查看>>
清华赵骥主任与CIO石海军研讨互联网信息化
查看>>
tnsname.ora文件解析
查看>>
论文:论项目的计划和监控
查看>>
linux启动引导过程 grub和mbr
查看>>
lnmp环境安装
查看>>
Codeforces Round #438 868A/B/C
查看>>
java.lang.ClassNotFoundException
查看>>
关于Console Application引用不到System.Web的问题
查看>>
调用百度翻译API接口功能
查看>>
表设置了自增后往里面插入不自增的id时的处理方法
查看>>
MySQL:MySQL日期数据类型、MySQL时间类型使用总结
查看>>
Proguard打包混淆报错:can't find superclass or interface
查看>>
2014美团笔试之寻找最短子串
查看>>
Open Flash Charts
查看>>