je veux faire une table dans le serveur MySQL
avec la colonne mediumtext
comme 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;
mais cela a fait une erreur
BLOB/TEXT column 'name' used in key specification without a key length
quand je change le type de "nom" en varchar .. ça marche!
pouvez-vous dire si je peux faire une colonne de texte comme UNIQUE KEY
Fondamentalement, vous ne pouvez pas utiliser la colonne Text
comme clé UNIQUE
. Parce que pratiquement une si grande colonne ne sera pas unique et il pourrait y avoir plus de doublons. Optez donc pour la méthode hashing
et utilisez cette sortie comme contrainte UNIQUE.
J'espère que cela vous aide
La limite de 255 pour la longueur varchar ne s'applique plus. De la documentation :
Les valeurs des colonnes VARCHAR sont des chaînes de longueur variable. La longueur peut être spécifiée sous la forme d'une valeur de 0 à 255 avant MySQL 5.0.3 et de 0 à 65 535 dans les versions 5.0.3 et ultérieures.
Les index uniques doivent avoir une longueur maximale connue (une exigence de mysql en raison de son implémentation interne), utilisez donc varchar avec une valeur suffisamment grande pour s'adapter à la valeur attendue la plus longue, par exemple
...
`name` varchar(65535) NOT NULL, -- for example
...