mysql - 将文本列设为唯一键

标签 mysql sql database unique-key

我想在 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 方法并将该输出用作 UNIQUE 约束。

关于mysql - 将文本列设为唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033378/

相关文章:

java - Android Sqlite 操作

ruby-on-rails - 如何与不同计算机/远处的数据库进行交互? ( ruby )

sql - 从join myself中选择第一行

mysql - 在数据库中存储过期信用?

mysql - 在 MySQL 数据库中存储货币值的最佳数据类型

mysql - 至少一个 X 但没有 Ys 查询

php - 如何使用存储的时间戳数据计算每个月的报告总数并以 json 数组格式输出

php - json 响应中不需要的方括号

mysql - 网站和应用程序之间通信的更简单方式

sql - 如何使用postgresql按自定义计数排序?