例:student表设置外键,该外键值引用class表内的id
student表的字段名有 (id,name,age,classID) class表的字段名有(id,score)
其中student表内id是主键 class表内id也是主键,并设置了自增长
那么classID需要设置外键,其外键为class表内的id主键。 注意必须被引用的值为主键才能设置为外键,否则报错。还有设置外键的类型和类型值必须与其一致(student中的classID类型必须与class中的id类型和类型值一致),否则也会报错。
设置外键一般有两个常用方式-----创建表时同时设置/创建后追加
创建表时设置↓
use human; //使用human数据库
create table student(
id int(4) primary key auto_increment, //设置主键和
`name` varchar(10), //特殊类型名需要用数字1隔壁的那个波浪符号包裹
age int(3),
classID int(4), ↓需要引入哪个表内的字段名
constraint 自定义的外键名称(一般推荐格式为FK_外键名称 ) foreign key( classID) references class(id)
↑红色为格式必须写 ↑括号内为当前表内需要设置外键的字段名
);
create table `class`(
id int primary key auto_increment, // 被引用的外键值必须是主键
score int(3)
);
创建表后追加↓
alter table 表名 add constraint 自定义的外键名称 foreign key(需要引用外键的字段名) references 被引用的表名(表内的值);
student表的字段名有 (id,name,age,classID) class表的字段名有(id,score)
其中student表内id是主键 class表内id也是主键,并设置了自增长
那么classID需要设置外键,其外键为class表内的id主键。 注意必须被引用的值为主键才能设置为外键,否则报错。还有设置外键的类型和类型值必须与其一致(student中的classID类型必须与class中的id类型和类型值一致),否则也会报错。
设置外键一般有两个常用方式-----创建表时同时设置/创建后追加
创建表时设置↓
use human; //使用human数据库
create table student(
id int(4) primary key auto_increment, //设置主键和
`name` varchar(10), //特殊类型名需要用数字1隔壁的那个波浪符号包裹
age int(3),
classID int(4), ↓需要引入哪个表内的字段名
constraint 自定义的外键名称(一般推荐格式为FK_外键名称 ) foreign key( classID) references class(id)
↑红色为格式必须写 ↑括号内为当前表内需要设置外键的字段名
);
create table `class`(
id int primary key auto_increment, // 被引用的外键值必须是主键
score int(3)
);
创建表后追加↓
alter table 表名 add constraint 自定义的外键名称 foreign key(需要引用外键的字段名) references 被引用的表名(表内的值);