【发布时间】:2011-06-24 03:06:45
【问题描述】:
我有以下 SQL 脚本。在它运行之后,外键关系永远不会被强制执行。
CREATE TABLE Country (
name varchar(40) NOT NULL,
abbreviation varchar(4) NOT NULL,
PRIMARY KEY (name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE StateProvince (
countryName varchar(40) NOT NULL,
name varchar(100) NOT NULL,
abbreviation varchar(3) NOT NULL,
PRIMARY KEY (countryName,name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
alter table StateProvince
add index FK_StateProvince_Country (countryName),
add constraint FK_StateProvince_Country
foreign key (countryName)
references Country (name);
这是因为复合主键吗?
【问题讨论】:
-
为什么在 stateprovince 表中使用 CountryName 作为复合主键和外键。单独使用 CountryName 作为外键不是更好吗?
标签: mysql sql foreign-keys foreign-key-relationship ddl