Tabela MySQL Muitas Colunas

30/06/2017

0

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

Responder

Posts

30/06/2017

Bruno

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
Responder

30/06/2017

Adriano Costa

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
Responder

03/07/2017

John Lima

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.
Responder

03/07/2017

John Lima

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.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar