目的:用两列创建主键
表一
create table ta1(
id int not null primary key auto_increment,
pid int not null,
uname varchar(20)
)engine =innodb default charset=utf8
由于这种写法无法再表二无法进行外键的关联 顾写成下面的格式
表一的变形
create table t1( -- 使用时注意改名
id int not null auto_increment,
pid int not null,
uname varchar(20),
PRIMARY key(id,pid)
)engine =innodb default charset=utf8
表二
create table table2(
id int PRIMARY KEY auto_increment,
name char(20),
id1 int,
id2 int,
CONSTRAINT fk_1 FOREIGN KEY(id1,id2) REFERENCES t1(id,pid)
)
注意1:
constraint (即 fk_1)后面的名字必须是唯一的,如果重复将会无法创建出表,所以经常用两张表的名来命名这个
注意:
[Err] 1005 - Can’t create table ‘teacher.tq2’ (errno: 150)
cause:(1)遇到这个错误请给你定义的外键换唯一无重复的名字;
(2)或者是这个外键已经和表的主键关联了;
(3)另外还有一种可能就是关联字段在引用表中没有建立索引,你必须在引用表中为关联字段创建一个索引。
查询参考网址:
https://blog.csdn.net/ghjzzhg/article/details/77852854