2009-11-18 4 views
0

Je veux créer une table qui possède 216 champs mais quand j'essaye de la créer j'ai eu une erreur ci-dessous dans mysql.Impossible de créer une table dans mysql

 
#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs 

Je ne sais pas quelle est sa solution. aidez-moi s'il vous plaît.

+0

Pouvez-vous modifier les colonnes en types plus petits? – Greg

+0

Non Je ne peux pas changer les colonnes à des types plus petits. Que devrais-je faire? Toute autre option? – Jimit

+0

Dans ce cas, vous devrez le découper comme suggéré dans les réponses – Greg

Répondre

6

Le problème est exact ce que mysql vous dit: vous avez trop de données pour une table. Non seulement le nombre de champs comptent pour eux, mais aussi leur taille ..

Mais le vrai problème est dans la conception de votre base de données, vous avez conçu une table qui crie à l'aide: « me séparer , divise-moi!

Vous devez normalize votre conception ..

1

Taille d'une ligne trop grande. Cela signifie juste cela. Avez-vous vraiment besoin de tous ces 216 champs? Pouvez-vous les couper?

Si vous avez vraiment besoin de ces 216 champs, envisagez de les diviser en 2 ou 3 tables avec un mappage 1: 1 de l'un à l'autre.

0

Réduire au minimum les tailles des champs ou en faire du texte/des blobs à la place.

Montrez-nous la commande create table que vous essayez d'exécuter.

1

Le message d'erreur est assez clair. Additionnez la taille de tous vos 216 champs et vous devriez voir que cela dépasse le maximum. Comme @Peter a dit que vous avez vraiment besoin de repenser votre conception. Je table devrait avoir plus de quelques dizaines de champs maximum!

Questions connexes