mysql5.7 创建表外键失败 求看下!!!! 折磨我一天了?

创建外键一直失败 ,,,,,难受死了。。。。。

还有  这个版块是可以发mysql的吧  我这还迷迷糊糊的。。。。
create table trkr_admin(
    id tinyint unsigned not null auto_increment primary key comment '管理员ID编号',
    name CHAR(30) not null default '' comment '管理员账号',
    cname CHAR(30) not null default '' comment '管理员昵称',
    password char(32) not null default '' comment '管理员密码',
    status  tinyint not null default '1' comment '账号状态 1开启 2关闭',
    UNIQUE(name),
    UNIQUE(cname),
    index(name)
)engine=InnoDB charset=utf8mb4;

create table trkr_article(
    id int unsigned not null auto_increment primary key comment '文章ID编号',
    title char(20)  not null default '' comment '文章标题名称',
    content varchar(16000) not null default ' '   comment '文章的内容',
    bind_adminname_id tinyint unsigned not null  comment '发表文章的作者外键',
    FOREIGN KEY(bind_adminname_id) REFERENCES trkr_admin(id),
    FULLTEXT (title,content) WITH PARSER ngram 
)engine=InnoDB charset=utf8mb4;

报错提示:ERROR 1215 (HY000): Cannot add foreign key constraint

阅读 2.9k
2 个回答

嗯,其实一两天还是蛮常见的,不过当然是越快解决越好了。而且碰到这种问题,最好如果有报错先将报错信息,以及相关代码放上来才方便大家帮你查找问题。关于外键这块,我涉及的也不多(不是不多,而是根本没有实操过,一般都是通过程序控制 sql 。)相关链接

新手上路,请多包涵
CREATE TABLE `trkr_admin` (
    `id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '管理员ID编号',
    `name` CHAR(30) NOT NULL DEFAULT '' COMMENT '管理员账号',
    `cname` CHAR(30) NOT NULL DEFAULT '' COMMENT '管理员昵称',
    `password` CHAR(32) NOT NULL DEFAULT '' COMMENT '管理员密码',
    `status` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '账号状态 1开启 2关闭',
    PRIMARY KEY (`id`),
    UNIQUE INDEX `name` (`name`),
    UNIQUE INDEX `cname` (`cname`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

CREATE TABLE `trkr_article` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '文章ID编号',
    `title` CHAR(20) NOT NULL DEFAULT '' COMMENT '文章标题名称',
    `content` VARCHAR(16000) NOT NULL DEFAULT ' ' COMMENT '文章的内容',
    `bind_adminname_id` TINYINT(3) UNSIGNED NOT NULL COMMENT '发表文章的作者外键',
    PRIMARY KEY (`id`),
    INDEX `bind_adminname_id` (`bind_adminname_id`),
    CONSTRAINT `trkr_article_ibfk_1` FOREIGN KEY (`bind_adminname_id`) REFERENCES `trkr_admin` (`id`),
    FULLTEXT (title,content) WITH PARSER ngram
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

看样子像是子表字段索引没建?或者你那个解析器ngram执行有没问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题