d-d*_*tor 26 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;
Run Code Online (Sandbox Code Playgroud)
但这造成了错误
BLOB/TEXT column 'name' used in key specification without a key length
Run Code Online (Sandbox Code Playgroud)
当我将`name`的类型更改为varchar时,它可以工作!
你能告诉我是否可以将文本列设为 UNIQUE KEY
Mar*_*ari 29
基本上你不能使用Text列作为UNIQUE键.因为实际上这样一个大的列不会是唯一的,并且可能有更多的重复.因此,请hashing使用该方法并将该输出用作UNIQUE约束.
希望这对你有所帮助
Boh*_*ian 25
varchar长度的限制255不再适用.从文档:
VARCHAR列中的值是可变长度字符串.长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值.
唯一索引必须具有已知的最大长度(由于其内部实现而需要mysql),因此请使用具有足够大值的varchar以适合您最长的预期值,例如
...
`name` varchar(65535) NOT NULL, -- for example
...
Run Code Online (Sandbox Code Playgroud)