Insert ignore into (mysql)

Résolu/Fermé
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 31 mai 2013 à 16:44
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 31 mai 2013 à 17:07
Bonjour,

Voici ma structure de table :
CREATE TABLE IF NOT EXISTS 'md5_words_1' (
'id' int(11) unsigned NOT NULL AUTO_INCREMENT,
'word' varchar(255) NOT NULL,
'md5' varchar(32) NOT NULL,
'sha1' varchar(40) NOT NULL,
PRIMARY KEY ('id'),
UNIQUE KEY 'word' ('word'),
KEY 'md5' ('md5'),
KEY 'sha1' ('sha1')
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

J'aimerai que sur un 'INSERT IGNORE INTO' je puisse ajouter un champs si la casse est différente, mais cela ne fonctionne pas car ce sont des chams unique (word)

Par ex. admin et Admin devraient etre sauvegardés.

Merci.


2 réponses

Utilisateur anonyme
31 mai 2013 à 16:58
Bonjour

Les collations ('interclassement') par défaut sont insensibles à la casse, c'est ce que signifie le _ci (case insensitive) à la fin de leurs noms.
Avec mysql, en utf-8, tu es obligé d'utiliser la collation utf8_bin qui est la seule sensible à la casse :

...
'word' VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL...
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
31 mai 2013 à 17:07
Décidément, j'en apprends tous les jours sur MySql ...

Merci à toi!
0