什么是外键?
外键的作用就是一个表中某列的值必须来自另一个表某列的值,否则数据将无法插入,这就是外键的作用
外键使用的条件?
所有的外键都必须在innodb表中使用,而mysqlisam表中是无法使用外键的
什么是innodb表,mysqlisam表?
mysqlisam表不支持事务处理,而innodb表支持事务处理,
什么是事务处理?
请看我将的pdo连接数据库吧,那里面将的比较详细了,就是一个自动提交,事务回滚。
下面我演示一下外键的语法
在mysql数据库中打开命令框
show databases; 查看本机数据库
create database shujuku default character set gbk collate gbk_bin; 创建数据库名叫shujuku 字符集编码为gbk 连接校对胃gbk_bin
use shujuku;进入数据库shujuku
create table student(
id int primary key auto_increment, 创建一个列名叫id 类型为int类型 并设置为主键(primary key) 自动递增(auto_increment)
name varchar(8) not null, 创建一个name列名 类型是varchar型 不能为空(not null)
sex char(2) not null 创建一个sex列名 类型是char 不能为空
)engine=innodb; 设置表的类型
create table course(
cno int primary key auto_increment,
cname varchar(8) not null
);
create table score(
id int priary key,
cname vacahr(8) not null,
score double(1) default 0,
CONSTRAINT book_customer foreign key(id) references student(id) on delete cascade on update cascade,
CONSTRAINT book_customer foreign key(cname) references course(cname) on delete cascade on update cascade
)engine=innodb; #红色部分代表着次外键名称
蓝色部分就是重点,
foreign key(id) references student(id) on delete cascade on update cascade
意思讲的是 在本章表中(即是在score表中)的id列的值,必须是来自student表中的id值, 当我们对表student.id列进行删除、更新时相应的score表中的id也随之发生改变.
外键的作用就是一个表中某列的值必须来自另一个表某列的值,否则数据将无法插入,这就是外键的作用
外键使用的条件?
所有的外键都必须在innodb表中使用,而mysqlisam表中是无法使用外键的
什么是innodb表,mysqlisam表?
mysqlisam表不支持事务处理,而innodb表支持事务处理,
什么是事务处理?
请看我将的pdo连接数据库吧,那里面将的比较详细了,就是一个自动提交,事务回滚。
下面我演示一下外键的语法
在mysql数据库中打开命令框
show databases; 查看本机数据库
create database shujuku default character set gbk collate gbk_bin; 创建数据库名叫shujuku 字符集编码为gbk 连接校对胃gbk_bin
use shujuku;进入数据库shujuku
create table student(
id int primary key auto_increment, 创建一个列名叫id 类型为int类型 并设置为主键(primary key) 自动递增(auto_increment)
name varchar(8) not null, 创建一个name列名 类型是varchar型 不能为空(not null)
sex char(2) not null 创建一个sex列名 类型是char 不能为空
)engine=innodb; 设置表的类型
create table course(
cno int primary key auto_increment,
cname varchar(8) not null
);
create table score(
id int priary key,
cname vacahr(8) not null,
score double(1) default 0,
CONSTRAINT book_customer foreign key(id) references student(id) on delete cascade on update cascade,
CONSTRAINT book_customer foreign key(cname) references course(cname) on delete cascade on update cascade
)engine=innodb; #红色部分代表着次外键名称
蓝色部分就是重点,
foreign key(id) references student(id) on delete cascade on update cascade
意思讲的是 在本章表中(即是在score表中)的id列的值,必须是来自student表中的id值, 当我们对表student.id列进行删除、更新时相应的score表中的id也随之发生改变.