无法在 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);
你创建的外键应该可以工作
我正在尝试在我的 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);
你创建的外键应该可以工作