MAC Sierra 10.12.2mariaDB Vers 10.1.19构造语句是从"查询表语法"窗口中剪切/粘贴的。
第一张表:
CREATE TABLE `USAStates` (
`state_id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,
`state_abbrev` varchar(6) NOT NULL DEFAULT '',
`electoral_votes` smallint(2) DEFAULT '0',
`fed_reg` smallint(2) DEFAULT '0',
`econ_anal_reg` varchar(128) DEFAULT NULL,
`FRB_district` varchar(128) DEFAULT NULL,
PRIMARY KEY (`state_id`,`state_abbrev`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
第二张表:
CREATE TABLE `FRBCommentary` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state_abbrev` varchar(6) NOT NULL DEFAULT '',
`FRB_district_rem` longtext,
PRIMARY KEY (`id`,`state_abbrev`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
命令窗口中 ALTER 语句的结果;使用查询工具的结果相同:
MariaDB [ESHOP]>
ALTER TABLE FRBCommentary
ADD CONSTRAINT FOREIGN KEY (state_abbrev)
REFERENCES USAStates (state_abbrev);
错误 1005 (HY000): 无法创建表
eshop
。#sql-74b_41
(errno: 150 "外键约束格式不正确") MariaDB [ESHOP]>
曾经在MS Access方面非常称职...多年后试图学习真实的东西。
您需要在引用的列上建立索引。
ALTER TABLE USAStates ADD INDEX (state_abbrev);