Mysql SQL错误-BLOB/TEXT列';url';用于无键长度的键规格

Mysql SQL错误-BLOB/TEXT列';url';用于无键长度的键规格,mysql,sql,Mysql,Sql,我正在尝试创建一个表,但出现以下错误: SQL error - BLOB/TEXT column 'url' used in key specification without a key length 这就是我正在使用的SQL CREATE TABLE recipes ( url TEXT NOT NULL, name TEXT NOT NULL, pic_url TEXT NOT NULL, vegetarian INT NOT NULL,

我正在尝试创建一个表,但出现以下错误:

SQL error - BLOB/TEXT column 'url' used in key specification without a key length
这就是我正在使用的SQL

CREATE TABLE recipes (
url         TEXT  NOT NULL,
name        TEXT  NOT NULL,
pic_url     TEXT  NOT NULL,
vegetarian  INT   NOT NULL,
ingredients TEXT  NOT NULL,
time        INT   NOT NULL,
rating      FLOAT NOT NULL,
ratings_no  INT   NOT NULL,
keywords    TEXT  NOT NULL,
UNIQUE (
    url
)
);

有人知道我怎么解决这个问题吗?谢谢。

BLOB/TEXT的长度为65535


建议使用适合URL长度的
VARCHAR(length)
(拉丁字符集)。

您只能为文本或BLOB列的第一列编制索引

UNIQUE (url(512)) 
将执行此操作,在列的前512个字符上创建索引

但是除非绝对必要,否则应避免使用
文本
列,并且几乎不使用索引。它们进入DBMS中单独分配的对象,这使得插入、更新和查询速度变慢。像唯一索引这样的东西也能正常工作。请看这个

请注意,URL工作得最好