2个表的MySQL错误无法添加外键约束

时间:2013-12-29 07:37:05

标签: mysql

我正在尝试在同一个数据库中创建2个表。但它仍然无法创建外键。

 create table countryadrc
 (
adrc char(3) not null,
county varchar(30) not null,
primary key (adrc),
unique (adrc, county)
 );

是另一个观察错误的表

create table localities
(
county varchar(30) not null,
locality tinyint not null,
primary key (county),
foreign key (county) references countryadrc (county)
);

1 个答案:

答案 0 :(得分:0)

您的架构似乎有点奇怪,但如果您在UNIQUE表中的countryadrc约束中交换列,则技术上可以使其工作。

  

Using FOREIGN KEY Constraints
  ...在引用表中,必须有一个索引所在的外键   列以相同的顺序列为第一列 ...

create table countryadrc
(
  adrc char(3) not null,
  county varchar(30) not null,
  primary key (adrc),
  unique (county, adrc) -- county should be the leftmost column in the index
);

这是 SQLFiddle 演示