外键定义语法:

[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …)
REFERENCES tbl_name (index_col_name, …)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]

该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,CONSTRAINT是一个约束标志,这个约束可以是主键、唯一键等各种键,如果指定CONSTRAINT symbol,则就使用这个 symbol 作为这些键的名字,否则,MYSQL会自动生成一个名字。
ON DELETE、ON UPDATE表示事件触发限制,可设参数:
RESTRICT(限制外表中的外键改动)
CASCADE(跟随外键改动)
SET NULL(设空值)
SET DEFAULT(设默认值)
NO ACTION(无动作,默认的)

例如:

create table student(
sid int primary key,
sname char(120),
sex char(120),
scourse char(120)
);
create table course(
cid int primary key,
cname char(120),
ccredit int
);
create table stucourse(
scid int primary key,
sid int,
cid int,
foreign key(sid) references student(sid),
foreign key(cid) references course(cid),
garde int not null
);

foreign key 里面的 sid 和 cid 是 stucourse 表里面定义的两个字段,后面的两个 sid 和 cid 是 student 表 和 course 表里面的

MySQL 创建主外键相关推荐

  1. oracle+cascade=gt;true,mysql数据库主外键级联删除脚本RESTRICT -- CASCADE

    在项目中,我们一般在数据库设计的时候做主外键关联设计,要么就不做.但是这样不符合规范,呵呵. 建立主外键关系的时候,默认是不能级联删除的.而出现往往在删除主表的数据时报错, 需要先删除从表然后再删除主 ...

  2. mysql不能删除外键吗,MySQL不能删除外键约束所需的索引

    MySQL不能删除外键约束所需的索引 我需要改变现有的数据库添加一列. 因此我也想更新UNIQUE字段来包含这个新列. 我试图删除当前的索引,但不断收到错误MySQL Cannot drop inde ...

  3. mysql级联删除外键约束_mysql通过外键级联删除

    mysql 可通过外键约束,实现数据的级联更新或者删除. 例如有主表(员工排班表): CREATE TABLE `personal_schedule` ( `id` int(11) NOT NULL  ...

  4. Mysql无法创建外键的原因

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  5. mysql setnull_1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用...

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  6. Mysql学习总结(19)——Mysql无法创建外键的原因

    在MySQL中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  7. 零基础带你学习MySQL—foreign key 外键(二十六)

    零基础带你学习MySQL-foreign key 外键(二十六) -- 外键演示 -- 创建 主表 my_class CREATE TABLE my_class ( id INT PRIMARY KE ...

  8. (转)mysql 无法设置外键的原因总结

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  9. mysql外键约束案例_详解MySQL中的外键约束问题

    使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建.检索.更新和删除等操作都是些比较简单的过程 .理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务 ...

  10. MySQL中包含外键无法删除数据的解决方案

    1.在数据库连接信息加入以下代码,意思就是允许执行多语句查询. allowMultiQueries=true 2.在删除语句前面加上SET FOREIGN_KEY_CHECKS=0; 意思就是取消My ...

最新文章

  1. Android 机顶盒手势、数据分页演示DEMO
  2. Python【每日一问】21
  3. jenkins配置python脚本参数_jenkins配置python脚本定时任务过程图解
  4. 给C盘减减肥,让你电脑飞一般速度!
  5. Redis面试 - 内存淘汰机制
  6. HttpClient_用Apache HttpClient实现URL重定向
  7. 《Python神经网络编程》
  8. ResNet网络结构详解及代码复现
  9. 如何下载Xcode DMG或XIP文件?
  10. 信道估计matlab代码
  11. 基于UML的高校教务管理系统的设计与实现
  12. 芯片中的CP是什么CP
  13. 启动jupyter notebook 报错:ImportError:DLL load failed,找不到指定模块的解决办法
  14. 浙江互联网金融联合会成立三周年走进海宁
  15. 遗传图谱基础原理培训资料
  16. galaxy tab p1000 升级android,三星Galaxy Tab P1000 简朴的刷机教程(附rom包下载地址)...
  17. S32K144(2)时钟配置
  18. 小红伞免费杀毒软件设置优化
  19. 阅读源码的三种境界 (转 码农翻身 微信公众号)
  20. 基于深度学习神经网络的农业病虫害识别(完整代码+数据)

热门文章

  1. Docker 比较好的新入门教程
  2. 数据库 -- 单表的数据查询
  3. zookeeper + dubbo 搭建
  4. 我开通个人博客了~~~~
  5. JavaScript学习02 基础语法
  6. [转]刚成为程序员的你需要什么技能
  7. mcs51 串口通信 单片机发 pc收
  8. servlet的监听器、过滤器、拦截器的区别
  9. HTTP权威指南-概述
  10. 2018-08-06-Python全栈开发day35-day36-select