这是一个非常直接的问题,但我还没有找到任何解决方案。场景是我的数据库中有 2 个表。第二个表的来源取决于第一个表的 SOURCE_URL(可以超过 255 个字符,所以我使用了 TEXT)。
create table SOURCES (
SOURCES_PK int not null AUTO_INCREMENT primary key,
SOURCE_URL text not null unique,
DESCRIPTION varchar(255)
);
create table ASSERTIONGROUP (
ASSERTION_PK int AUTO_INCREMENT primary key,
LABEL varchar(255),
SOURCE text not null,
foreign key (SOURCE) references SOURCES(SOURCE_URL)
);
我收到这个错误-
密钥规范中使用的 BLOB/TEXT 列“SOURCE”没有密钥长度
我在这篇文章中看到了讨论——MySQL 错误:没有密钥长度的密钥规范。
但想不出任何解决办法。
我可以从第一个表中删除唯一的,但我不能分配外键约束。
我知道该TEXT
领域不可能是唯一的,因此寻找替代方法。