一尘不染

使文本列作为唯一键

mysql

我想在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


阅读 228

收藏
2020-05-17

共1个答案

一尘不染

基本上,您不能将Text列用作UNIQUE键。因为实际上这么大的列将不是唯一的,并且可能会出现更多重复的情况。因此,寻找hashing方法并将该输出用作UNIQUE约束。

希望这对您有帮助

2020-05-17