文章目录

  • 1.什么是外键约束
  • 2.对于已经存在的字段添加外键约束
  • 3.在创建数据表时设置外键约束
  • 4. 删除外键约束
    • (1)获取外键约束名称
    • (2)删除外键约束
  • 5. 小结

1.什么是外键约束

外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性

2.对于已经存在的字段添加外键约束

-- 为cls_id字段添加外键约束
alter table students add foreign key(cls_id) references classes(id);

3.在创建数据表时设置外键约束

-- 创建学校表
create table school(id int not null primary key auto_increment, name varchar(10)
)engine=InnoDB default charset=utf8;-- 创建老师表
create table teacher(id int not null primary key auto_increment, name varchar(10), s_id int not null, foreign key(s_id) references school(id)
)engine=InnoDB default charset=utf8;

4. 删除外键约束

(1)获取外键约束名称

-- 需要先获取外键约束名称,该名称系统会自动生成,可以通过查看表创建语句来获取名称
show create table teacher;

(2)删除外键约束

-- 获取名称之后就可以根据名称来删除外键约束
alter table teacher drop foreign key 外键名;

5. 小结

  • 添加外键约束: alter table 从表 add foreign key(外键字段) references 主表(主键字段);
  • 删除外键约束: alter table 表名 drop foreign key 外键名;

SQL中怎么创建外键和删除外键相关推荐

  1. Mysql级联操作,添加外键和删除外键

    目录 1.级联操作CASCADE 2.删除外键,和添加外键 1.级联操作CASCADE 1.级联删除语法 on delete cascade 书写的位置:创建表的字段后边 2.级联修改语法 on up ...

  2. oracle 级联外键,Oracle 级联删除外键

    所谓的级联删除是指当主表中的一条记录被删除,那么子表中所关联的记录也相应的自动删除.本教程将教大家如何在Oracle中使用级联删除外键. 使用CREATE TABLE语句定义级联删除 以下是使用CRE ...

  3. mysql不能删除外键吗,为什么mysql不允许删除外键?

    有时我们不能删除mysql外键,我们该怎么办?这就是为什么mysql不允许你删除外键和解决方案,希望能帮助有需要的朋友! 1.在建立一个外键之后,MYSQL将自动建立一个同名的索引 2.删除外键时,如 ...

  4. oracle级联删除表语句,Oracle 级联删除外键

    Oracle 级联删除外键 所谓的级联删除是指当主表中的一条记录被删除,那么子表中所关联的记录也相应的自动删除.本教程将教大家如何在Oracle中使用级联删除外键. 使用CREATE TABLE语句定 ...

  5. SQL中的PRIMARY KEY(PK)(主键)和Foreign Key (FK)(外键解析

    1:ERD(entity relationship dialgram)实体属性图中PK所对应的就是每个表中主键(上图为ERD) 2:当我们用SQL语言查询表的时候,一般第一个列出的就是每个表的主键 主 ...

  6. SQL SERVER 2008 创建,删除,添加表的主键

    创建有主键的表 create table 教师 (编号 char(10),姓名 char(10) not null,性别 char(2),年龄 int,职称 char(10),constraint a ...

  7. sql语句添加删除外键

    --删除外键 alter table AdItem drop constraint AdOrder_AdItem_FK1 --增加外键 alter table AdItem add constrain ...

  8. 秒懂sql中的左外连接

    左外连接: 1.语法: SELECT 查询字段 FROM 查询表格(左表) LEFT JOIN 右表 ON 查询条件 2.左外连接查询的就是左表,那干嘛加个右表,岂不是没有作用: 区别在于左外连接是查 ...

  9. mysql 删除外键

    删除外键盘 1.查询外键别名: mysql> show create table son; +-------+------------------------------------------ ...

最新文章

  1. 青龙羊毛——垦荒新生活
  2. Java LinkedList特有方法程序小解 使用LinkedList 模拟一个堆栈或者队列数据结构。...
  3. LiveQing视频流媒体开放平台利用 webpack 打包压缩后端代码
  4. 绘图: matplotlib核心剖析
  5. linux文件的特殊权限,Linux系统文件的默认权限和特殊权限
  6. 记录navigator实现不同设备页面跳转
  7. python质数n以内_用Python寻找前n个质数
  8. Angular应用 vendor.js里的magic number 16384是什么含义
  9. WordPress里的PHP AJAX call
  10. 网址导航html5源码图标版,最新仿hao123网址导航(晓风网址导航系统) v4.2
  11. POJ1273 Drainage Ditches(最大流基础题)
  12. 计算机视觉识别简史:从 AlexNet、ResNet 到 Mask RCNN
  13. Express框架学习笔记-app.locals对象
  14. 智能用电计量管理系统 远程预付费管理系统的设计与应用
  15. 尚学堂python开发工具_尚学堂百战程序员分享:Python的数据模型
  16. 【人工智能】非线性分类器(QDU)
  17. linux 图片批量裁处理,linux下使用Image Magick批量处理图片
  18. 精通 C++ 是个毛意思
  19. java历史记录_简单的带历史记录的搜索功能实现
  20. 什么是大数据和大数据平台?

热门文章

  1. mysql - percona-xtrabackup 物理备份
  2. Chrome浏览器调试js第二次运行出现Uncaught SyntaxError: Identifier ‘***’ has already been declared
  3. gbrt(gbdt)源码分享
  4. 【笔记】从0开发浏览器上的语音聊天室系统
  5. Pycharm和Anaconda的关系
  6. 3.HDFS之shell基本操作
  7. httpie php,Python 安装 httpie
  8. python-docx获取docx文档多级目录
  9. openCV学习之路(2-3)---深度解析imshow函数
  10. 浣花溪公园(最短路径模板)