无法在 PHPmyadmin 中创建外键

Unable to create foreign key in PHPmyadmin

我正在尝试在我的 table 之一中创建外键,但出现此错误,你能帮忙解决这个问题吗

CREATE TABLE IF NOT EXISTS `albums` (
  `id` smallint(5) unsigned NOT NULL,
  `url` mediumtext NOT NULL,
  `year` mediumint(9) NOT NULL,
  `album_name` varchar(150) NOT NULL,
  `album_cover` text NOT NULL,
  `tracks_id` text NOT NULL,
  `category` tinyint(4) NOT NULL,
  `reciter` tinyint(4) NOT NULL,
  `keywords` varchar(300) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

外键Table结构

CREATE TABLE IF NOT EXISTS `album_likes` (
  `album_id` int(5) NOT NULL,
  `likes` int(11) NOT NULL,
  `dislikes` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

现在我制作这个外键的方法是在 phpmyadmin 中找到这个 table 的结构,然后在列中添加约束名称 select 这是查询

ALTER TABLE `album_likes` ADD  CONSTRAINT `album_like_fk` FOREIGN KEY (`album_id`) REFERENCES `mp3script`.`albums`(`id`) ON DELETE CASCADE ON UPDATE NO ACTION;

我得到的输出

1215 - 无法添加外键约束

外键需要您引用的列的索引,在本例中为 albums.id

添加索引:

CREATE INDEX ids_nn_1 on albums(id);

你创建的外键应该可以工作