我的问题: 我使用 mysql 创建了两个表 第一个表称为 team,它有团队 ID 和团队名称 第二个表媒体表,它有 id 和 blob 类型的图像 我想在表团队引用中添加外键到媒体表中的列图像 我搜索了谷歌,但我发现我不能这样做 因此,如果我不能,有什么方法可以向保存图像数据的列添加外键引用?
这是团队表
CREATE TABLE `team` (
`TE_ID` INT(11) NOT NULL,
`TE_Name` VARCHAR(255) NOT NULL,
`image` VARCHAR(255) NOT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8;
还有这个媒体表
CREATE TABLE `media`(
`media_id` INT(11) NOT NULL,
`media_jpg` BLOB
);ENGINE=INNODB DEFAULT CHARSET=utf8;
希望有人能帮助我
最佳答案
作为一般规则,键应该小且易于使用、引用等。不要使用 BLOB
作为外键,而应使用其 ID。例如:
CREATE TABLE `media`(
`media_id` INT(11) NOT NULL,
`media_jpg` BLOB
);ENGINE=INNODB DEFAULT CHARSET=utf8;
然后,创建引用此表的表:
CREATE TABLE `team` (
`TE_ID` INT(11) NOT NULL,
`TE_Name` VARCHAR(255) NOT NULL,
image_id INT(11) NOT NULL,
constraint fk1 foreign key (image_id) references `media` (`media_id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
此外,您不需要使用反引号将每个列名称括起来。仅当您的名称带有空格或特殊字符时才使用它们。您的任何表或列名称似乎都不是这种情况。
关于mysql - 如何向引用数据类型 blob 列的表添加外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56084508/