我正在尝试在同一个数据库中创建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)
);
答案 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 演示