[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: erreur avec mariadb



salut,

je ne suis pas sur que mon premier mail soit bien parti aussi désolé si doublon

MyISAM n'existe plus dans mariadb ( ni dans mysql depuis la 5.5)

pour la clé 255 * 8 > 1000 bytes

essaie de changer l'INNODB large prefix  (-> enable)

pour les puristes ne jamais faire une clé sur un VarChar

USE postfix;

CREATE TABLE `domaines` (
 
 `id`  int(11) NOT NULL,
 `domaine` varchar(255) NOT NULL default '',
  `etat` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`domaine`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci



Le 10/07/2017 à 15:17, Dominique Asselineau a écrit :
bernard.schoenacker@free.fr wrote on Mon, Jul 10, 2017 at 10:55:26AM +0200
bonjour,

en donnant cette instruction j'ai droit à une erreur :

USE postfix;

CREATE TABLE `domaines` (
  `domaine` varchar(255) NOT NULL default '',
  `etat` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`domaine`)
) ENGINE=MyISAM;


le code erreur :
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes

remarque la même syntaxe passe avec MySQL comment la faire
 passer avec Mariadb ?
C'est visiblement l'encodage utf8 qui pose problème.  Si ça passe avec
MySQL c'est parce que l'encodage par défaut sur cet environnement est
sur 3 octets alors qu'avec Mariadb il pourrait bien être de 4 octets.

Pour résoudre le problème, s'il s'agit bien de noms de domaine, il est bien peu probable qu'ils fassent 255 caractères de long
et qu'ils soient encodés en autre chose que de l'ASCII.

soit
      `domaine` varchar(128) NOT NULL default '',

soit
      `domaine` varchar(255) CHARSET ASCII NOT NULL default '',

Dominique
--




--
logogite Roseline & Bruno Volpi
Chaillac
19450 Chamboulive


F: 05 55 21 27 57
M: 06 78 07 40 27

web : http://www.brunovolpi.com/gites


Reply to: