mysql 外键约束

     mysql 外键约束_第1张图片                           

上图中contact_interestcontact_seeking两张表的创建涉及到外键约束,其中一个表创建完成后,另一个的创建总是失败,害我摸索好久。

这是我创建失败的sql

create tablecontact_interest
(
contact_id int not null,
interest_id int not null,
primary key(contact_id,interest_id),
constraint my_contacts_contact_id_fk
foreign key(contact_id)
references my_contacts(contact_id),
constraint interests_interest_id_fk
foreign key(interest_id)
references interests(interest_id)
);

create tablecontact_seeking
(
contact_id int not null,
seeking_id int not null,
primary key(contact_id,seeking_id),
constraint my_contacts_contact_id_fk
foreign key(contact_id)
references my_contacts(contact_id),
constraint seeking_seeking_id_fk
foreign key(seeking_id)
references seeking(seeking_id)
);
试了不知道多少次呢,郁闷死我了,开始以为是创建组合主键,和外键约束的语句有问题,查了好些地方,比对尝试了n次,发现原来不是语法问题

而是两张表中constraint my_contacts_contact_id_fk名字重复了,原来约束名不能重复。恍然大悟。

 

 

你可能感兴趣的:(mysql,数据库,约束,外键)