MySQL Erro 1170 (42000): BLOB/ TEXTO Coluna Usado em Chave Especificação Sem um Chave Comprido
Ao criar um nova mesa ou alterando um existente mesa com primária chaves, único coações e índices, ou ao definir um nova indexar com Alterar Mesa manipulação afirmação em MySQL banco de dados, a seguinte erro poderá acontecer e inibir o o comando de complementar:
ERRO 1170 (42000): BLOB/ TEXTO coluna ‘field_name’ usado em chave especificação sem um chave comprido
O erro acontecer porque MySQL podem indexar somente a primeira N chamuscar de um BLOB ou TEXTO coluna. De modo a que a erro principalmente acontecer quando há um campina/ coluna tipo de TEXTO ou BLOB ou essas pertence a TEXTO ou BLOB tipos tal TINYBLOB, MEDIUMBLOB, Chalupa, TINYTEXT, MEDIUMTEXT, e LONGTEXT que você tenta fazer como primária chave ou indexar. Com total BLOB ou TEXTO sem o tamanho valor, MySQL é incapaz garantir o singularidade da coluna pois a sua’ de variável e dinâmico tamanho. De modo que quando, usando BLOB ou TEXTO tipos como indexar, o valor de N deve ser fornecida de guisa MySQL podem determinar a chave comprido. Agora, MySQL faz’ suporta limite em TEXTO ou BLOB. Texto() simplesmente acostumado’ trabalho.
O erro irá também popular acima quando-se tentar para converter uma tabela coluna de não- TEXTO e não-BLOB tipo tal VARCHAR e ENUM em TEXTO ou BLOB tipo, com a coluna já estado definido como único coações ou indexar. O Alterar Mesa SQL comando irá falhar.
A solução à problema é para retirar o texto ou BLOB coluna da indexar ou único coação, ou set outro campo como primária chave. Se you calão’ fazer que, e querendo para colocar uma fronteira ao TEXTO ou BLOB coluna, tentar usar VARCHAR tipo e espaço uma fronteira de comprido nela. By omissão, VARCHAR é limitada a um máxima de 255 caracteres e dela limite deve ser especificado subentendido dentro um parêntese logo após dela declaração, i.e VARCHAR200() irá limite a a 200 caracteres longa somente.
Às vezes, se bem que you dont’ uso TEXTO ou BLOB relacionado digitar seu mesa, o erro 1170 poderá também aparecer. A acontecer em situação tal quando-se especificar VARCHAR coluna como primária chave, mas errado set dela comprido ou caracteres tamanho. VARCHAR podem somente aceitar até 256 caracteres, portanto qualquer coisa tal VARCHAR512() irá força MySQL a auto- convertido o VARCHAR512() a um SMALLTEXT datatype, qual depois falhar com erro 1170 em chave comprido se a coluna é utilizada como primária chave ou único ou não- único indexar. Para solucionar esse problema, especificar uma imagem menos que 256 que as tamanho for VARCHAR campina.
importante: A página é máquina traduzida e previsto " como é" sem garantia. Máquina tradução pode ser difícil comprender. Por favor recorrer aoriginal Inglês artigo sempre que possível.
Relacionado Artigos
- Como encontrar e Substituir Texto em MySQL Banco de dados usando SQL
- WordPress MySQL SQL Questão Erro em WPDB Aula
- Texto Copiando Inválido ( afixar Cópia e Cola Enguiçado Erro)
- Alteração e Restabelecer MySQL raíz Senha
- Adicionando Extra More Capinas a WordPress Escrever/ Editar Poste/ Página Direita Coluna
- Remover ou Ajustar Primeira ou Passado Poucos Caracteres em MySQL Banco de dados com SQL
- MySQL Banco de dados Atuação Tuning Melhor Práticas Vídeo Tutorial
- Instalando Servidor da Web em Coisa gratuita 6.0 com Apressadamente 2.2, MySQL 5.0 e PHP 5 Parte 3
- Confirmar e Otimizar MySQL Banco de dados Automaticamente com Velha/ Velha
- ORA-02449 Oráculo Pingo Mesa Erro










































Abril 30th, 2009 2232:
Muito obrigada à poste.
Eu preciso um chave isto é mais tempo então 256.
What será que posso fazer?
googling a à passado 3 horas sem quaisquer sorte…
(Paco Zarabozo comentário fazia não trabalho para mim)
Dezembro 13th, 2008 2220:
[...] Eu corria em algum problemas, EU atrás- pedal a esquadro um. Agradecidamente my reforço refeito o Latim banco de dados sem nenhum[...]
Outubro 29th, 2008 1016:
Bem, heresia’ outra solução. Você pode na verdade especificar a chave comprido para a sua indexar enquanto guardando seu campina como longtext. Isto é um exemplo:
criar mesa mensagens(
identificação int20() não nulo auto_increment,
mensagem longtext,
indexar ( mensagem(), identificação)
);
descender mensagens;
demonstração indexar de mensagens;
996 é o maximizar chave comprido mySQL possui aceito para mim.
Aclamações,
Paco
Outubro 27th, 2008 1950:
Muito obrigada!
Outubro 6th, 2008 0350:
Muito obrigada muito. Eu havia esse problema e você foram um êxito vida protetor!
Desfile 7th, 2008 0415:
Agradecimento, muito bem definido
Fevereiro 23rd, 2008 0340:
Agradecimento à poste. Muita útil.
Fevereiro 20th, 2008 0245:
agradecimento Muita útil poste.
Agosto 30th, 2007 1833:
Agradecimento for pondo this acima. EU didnt’ obter o erro e você salvido me muita o frustração. Identificação’ posto you na ‘Goog povos’ categoria qualquer hora