Aller au contenu

Mysql Type BLOB


Sujets conseillés

Posté

Bonjour,

Dans une des tables de ma base contenant des articles, j'ai voulu passer le champ qui contient tout le corps des articles de type VARCHAR à BLOB pour pouvoir me permettre d'insérer des articles plus conséquents.

Résultat :

#1170 - BLOB column 'corps' used in key specification without a key length

Que je mettre une key length ou pas ne change pas cette erreur. Y'a t-il des spécifications particulières pour ce type de champs ?

Merci !

Posté

Normalement, il n'y en a pas.

Tu peux faire passer l'instruction que tu essaies ?

Et aussi s'il y a des 'index', ou valeurs par défaut, etc...

Posté

Ci-joint la structure de ma table :

CREATE TABLE `sites_posting` (
 `id_post` int(4) NOT NULL auto_increment,
 `categorie` enum('news','articles') NOT NULL default 'news',
 `url` varchar(100) NOT NULL default '',
 `titre` varchar(100) NOT NULL default '',
 `corps` varchar(255) NOT NULL default '',
 `date` date NOT NULL default '0000-00-00',
 PRIMARY KEY  (`id_post`),
 KEY `categorie` (`categorie`,`url`,`titre`,`corps`),
 KEY `date` (`date`)
) TYPE=MyISAM;

L'instruction que j'utilise dans PhpMyadmin pour passer le champ 'corps' en BLOB est :

ALTER TABLE `sites_posting` CHANGE `corps` `corps` BLOB NOT NULL

Posté

Là :

KEY `categorie` (`categorie`,`url`,`titre`,`corps`),

tu déclares ton 'corps' comme une clé.

Or un 'blob' ne peut etre une clé.

Il faut que tu supprimes cette clé (key), sur le 'corps', pour pouvoir ensuite changer ton varchar en blob.

Donc :

ALTER TABLE sites_posting DROP INDEX categorie, ADD INDEX categorie (categorie,url,titre)

puis tu fais :

ALTER TABLE sites_posting CHANGE corps corps BLOB NOT NULL

Voilà ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...