2011-03-26 2 views
0

J'ai une grande table à partitionner par la valeur d'un champ de type varchar (200). J'ai déjà lu this question mais parce que la taille du champ je ne peux pas utiliser cette solution.
Ma question est: Puis-je utiliser un critère similaire à LIKE 'b%' ou LIKE 'o%' et ainsi de suite?
Si non, comment puis-je résoudre ce problème?Comment partitionner une table en utilisant un critère LIKE dans Mysql

Merci à l'avance,
Antonio

+0

« mais parce que la taille du champ » --- Uhm, même si vous avez varchar limité de 200 caractères, vous pouvez utiliser cette solution. – zerkms

+0

Bien sûr, mais je cherche quelque chose de plus immédiat. Je peux utiliser cette solution en écrivant un script qui pour chaque partition fait quelque chose comme partition p1 valeurs inférieures à ('bzzzz ....') 199 fois z. De toute façon, si je ne peux pas utiliser un critère LIKE, j'utiliserai cette solution. :) –

+1

vous n'avez pas besoin d'écrire "z" 199 fois. Il suffit d'écrire 'less than ('c')' – zerkms

Répondre

1

Vous feriez mieux de spécifier la plage que

less than ('c') 

Il est court et facile à lire.

+0

Je reçois une erreur: 'ERREUR 1064 (42000): la valeur VALUES doit être du même type que la fonction de partition près de '), la partition p2 est inférieure à (' e '), ...' –

+0

@Antonio F .: oui, j'avais tort ... – zerkms

0

Il semble que le partitionnement sur varchar est autorisé uniquement si le partitionnement est effectué par clé (pas de valeurs dupliquées et aucune valeur nulle autorisée).

Here a discussion

J'ai essayé d'effectuer un partitionnement en utilisant une fonction « convertis » à des valeurs entières comme ASCII(), mais il ne se compare pas Mysql les fonctions supportées par l'expression partitionnement.

List of supported functions

Questions connexes