我想在MySQL服务器中创建一个表,mediumtext列为UNIQUE KEY

CREATE TABLE `parts` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` mediumtext NOT NULL,
      `display_status` int(11) NOT NULL,
       UNIQUE KEY `name` (`name`),
       PRIMARY KEY (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

但这是一个错误

    BLOB/TEXT column 'name' used in key specification without a key length

当我把'name'的类型改为varchar..真管用!

你能告诉我是否可以把文本列设为UNIQUE KEY

推荐答案

基本上不能使用Text列作为UNIQUE键.因为实际上这么大的一个列不会是唯一的,而且可能会有更多的重复项.因此,使用hashing方法并使用输出作为唯一约束.

Database相关问答推荐

如何高效地存储 100 万个单词并通过starts_with、contains 或ends_with 进行查询?

您是否遇到过 SQL Server 因为引用了太多表而无法执行的查询?

哪个能够存储 1 亿条记录的嵌入式数据库具有高效的 C 或 C++ API

安装 SQL Server Management Studio Express后提示:Cannot open user default database. Login failed.

Objective-C中是否有类似于LINQ的东西?

如何识别 DB2 端口号

如何避免使用 LINQ-To-SQL 的内存泄漏?

如果限制在本地机器上,最好使用 R 和 SQL

使用 Flask 时 Python 中持久数据库连接的最佳实践

如何在 MSSQL 2005 中创建递归查询?

在 MS SQL 中使用 GUID 作为主键是不是一个坏主意?

是否有任何用于 NoSQL 数据库架构迁移的工具?

用于获取存储在单个表中的 n 级父子关系的 Postgresql 查询

如何使用 INSERT ... ON CONFLICT ... 更新所有列?

Boxed与原始类型作为实体 id

表模块与域模型

如何动态更改 Ruby on Rails 中所有模型的 Active Record 数据库?

使用 PHP 和 MySQL 开发测验Web 应用程序的数据库设计

最佳用户角色权限数据库设计实践?

ManyToOneRel 和 ForeignKey 的区别?