Mysql mariaDB外键未格式化-varchar不是已签名/未签名问题

Mysql mariaDB外键未格式化-varchar不是已签名/未签名问题,mysql,foreign-keys,mariadb,foreign-key-relationship,Mysql,Foreign Keys,Mariadb,Foreign Key Relationship,MAC Sierra 10.12.2 马里亚伯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_r

MAC Sierra 10.12.2 马里亚伯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
(错误号: 150“外键约束格式不正确”)MariaDB[ESHOP]>


过去在MS Access方面非常有能力……几年后试图学习真实的东西

您需要引用列上的索引

ALTER TABLE USAStates ADD INDEX (state_abbrev);

建议您去掉
id
,并将
state_abbrev
作为
主键