外键约束

Posted wangjiuwang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外键约束相关的知识,希望对你有一定的参考价值。

1.创建class,课程表
DROP TABLE IF EXISTS `class`;
CREATE TABLE `class` (
  `scno` varchar(10) NOT NULL,
  `scname` varchar(10) default NULL,
  PRIMARY KEY  (`scno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.创建student,学生表
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `sid` varchar(10) NOT NULL,
  `sname` varchar(10) default NULL,
  `scno` varchar(10) default NULL,
  PRIMARY KEY  (`sid`),
  KEY `s_sc` (`scno`),
  CONSTRAINT `s_sc` FOREIGN KEY (`scno`) REFERENCES `class` (`scno`) ON DELETE NO ACTION ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


3.实例
//插入时外键不存在于外键表中时插入不成功insert into student(sid,sname,scno)values('2','222','10')
//没有外键可以插入insert into student(sid,sname)values('1','111');
//课程表里有数据才可以insert into class(scno,scname)values('10','aaa');insert into student(sid,sname,scno)values('2','222','10')

以上是关于外键约束的主要内容,如果未能解决你的问题,请参考以下文章

mysql为啥被设了外键的表还能被删掉?

外键约束

深刻理解数据库外键含义

SQL中啥叫主键,啥是外键,有啥关系

MySQL外键+唯一索引

oracle 查询外键的名称