Tabela MySQL Muitas Colunas

MySQL

30/06/2017

Oi pessoal,

sou novo com banco de dados e estou criando um database para receber dados do censo2010 como projeto de faculdade.

O comando para criação é esse:

CREATE TABLE `censo10_domicilio01` (
  `id_censustract` bigint(20) NOT NULL DEFAULT '0',
  `v001` varchar(45) DEFAULT NULL 
  `v002` varchar(45) DEFAULT NULL 
  `v003` varchar(45) DEFAULT NULL 
  `v004` varchar(45) DEFAULT NULL 
  `v005` varchar(45) DEFAULT NULL 

   ...

  `v236` varchar(45) DEFAULT NULL 
  `v237` varchar(45) DEFAULT NULL 
  `v238` varchar(45) DEFAULT NULL 
  `v239` varchar(45) DEFAULT NULL 
  `v240` varchar(45) DEFAULT NULL 
  `v241` varchar(45) DEFAULT NULL 
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id_censustract`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Tabela Domicílio01 Censo 2010


Quando vou criar aparece o erro "0 row(s) affected, 1 warning(s): 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline."

A minha dúvida é: não é possível criar tabelas com muitas colunas assim? Se eu mudar todos os campos pra TEXT não ficaria maior que VARCHAR(45)?

Procurei algo assim no fórum e não localizei, se já tiverem perguntado me desculpem.

Att
André Freitas

André Freitas

Curtidas 0

Respostas

Bruno

Bruno

30/06/2017

Olá,

Aqui segue uma fonte interessante para estudo https://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html

Pelo que ficou claro para mim existe uma limitação para tipos de colunas que não sejam blob ou text.

No site acima existe alguns exemplos que podem te ajudar
GOSTEI 0
Adriano Costa

Adriano Costa

30/06/2017

Pelo código que postou, está faltando vírgulas para separar as colunas ou você as omitiu no post, confira isso e depois poste aqui ok, abraço
GOSTEI 0
John Lima

John Lima

30/06/2017

cara a primeira coisa que você tem que analisar é o seguinte todos os campos vão ser sempre preenchidos ? caso não o interessante seria normalizar. Sobre o tamanho campo se você vai trabalhar com texto eu usuária ou text ou varchar, agora só usaria o text caso esse campo tenha um tamanho maior que 255 que é o tamanho máximo do varchar.
GOSTEI 0
John Lima

John Lima

30/06/2017

cara a primeira coisa que você tem que analisar é o seguinte todos os campos vão ser sempre preenchidos ? caso não o interessante seria normalizar. Sobre o tamanho campo se você vai trabalhar com texto eu usuária ou text ou varchar, agora só usaria o text caso esse campo tenha um tamanho maior que 255 que é o tamanho máximo do varchar.
GOSTEI 0
POSTAR