Error de MySQL 1170 (42000): Columna de GOTA/TEXT Utilitzada en Especificació Clau Sense una Llargada Clau

Quan creant una taula nova o canviant un existir presenta amb claus primàries, coaccions úniques i índexs, o quan definint un índex nou amb Canviar manipulació de Taula declaració en la base de dades de MySQL, l'error següent pot ocórrer i prohibir l'el comanda de completar:

ERROR 1170 (42000): Columna de GOTA/TEXT 'field_name' utilitzada en especificació clau sense una llargada clau

L'error passa perquè MySQL pot indexar només el primer N socarrima d'una columna de GOTA o TEXT. Que així L'error principalment passa quan hi ha un tipus de camp/columna de TEXT o GOTA o aquells pertany a tipus de TEXT o GOTA com TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT, i LONGTEXT que intenta fer com clau primària o indexa. Amb plena GOTA o TEXT sense el valor de llargada, MySQL és incapaç de garantir la unicitat de la columna com és de mida variable i dinàmica. Així, en utilitzar tipus de GOTA o TEXT com índex, el valor de N s'ha de donar de manera que MySQL pugui determinar la llargada clau. Tanmateix, MySQL no dóna suport a límit en TEXT o GOTA. TEXT(88) simplement no treballarà.

L'error també apareixerà des de quan intenti convertir una columna de taula no-TEXT i tipus NO-GOTA com VARCHAR i ENUM a TEXT o tipus de GOTA, amb la columna ja estat definit com coaccions úniques o índex. El Canviar comanda de SQL de Taula fallarà.

La solució al problema és treure la columna de TEXT o GOTA de l'índex o coacció única, o posar un altre camp com clau primària. Si no pot fer allò, i volent posar un límit a la columna de TEXT o GOTA, intentar utilitzar tipus de VARCHAR i posar un límit de llargada en això. Per defecte, VARCHAR es limita a un màxim de 255 caràcters i el seu límit s'ha d'especificar implícitament dins d'un parèntesi bé després de la seva declaració, i.e VARCHAR(200) el limitarà a 200 caràcters molt de temps només.

A vegades, tot i que no utilitza TEXT o la GOTA relacionava tipus a la seva taula, l'Error 1170 també pot aparèixer. Passa en la situació com quan especifica columna de VARCHAR com clau primària, però equivocadament posa la seva llargada o mida de caràcters. VARCHAR poden només accepta fins a 256 caràcters, així tot com VARCHAR(512) forçarà MySQL a auto convertir el VARCHAR(512) en un SMALLTEXT datatype, la qual cosa posteriorment falla amb l'error 1170 en llargada clau si la columna s'utilitza com índex clau o únic o no únic primari. Per resoldre aquest problema, especifiqui una xifra menys de 256 com la mida per a camp de VARCHAR.

IMPORTANT: La pàgina és màquina traduïda i proporcionada "com és" sense garantia. La traducció automàtica pot ser difícil d'entendre. Si us plau refereixi's a article anglès original quan sigui que possible.


9 Respostes a "Error de MySQL 1170 (42000): Columna de GOTA/TEXT Utilitzada en Especificació Clau Sense una Llargada Clau"

  1. Eli Manobella
    30 d'abril, 2009 22:32
    9

    Gràcies per al correu.
    Necessito més llarga una clau que és llavors 256.

    Què puc fer?

    googling això durant les 3 hores passades sense sort...
    (El comentari Paco Zarabozo no funcionava per mi)

  2. Predicant al UTF8 convertit a hontou ni sou omou?
    13 de desembre, 2008 22:20
    8

    [...] corria a alguns problemes, feia marxa enrere per escairar-ne un. Afortunadament la meva reserva restaurava la base de dades de Latin1 sense algun [...]

  3. Paco Zarabozo
    29 d'octubre, 2008 10:16
    7

    Bé, aquí és una altra solució. Pot de fet especificar la llargada clau per al seu índex mentre manté el seu camp com longtext. Això és un exemple:

    creï missatges de taula (
    id int(20) auto_increment no nul,
    longtext de missatge,
    índex (message(996), id)
    );

    missatges de desc;
    índex de demostració des de missatges;

    996 és la llargada clau de maximium que mySQL ha acceptat per a mi.

    Alegries,

    Paco

  4. David
    27 d'octubre, 2008 19:50
    6

    Gràcies molt!

  5. Marius Vilaia
    6 d'octubre, 2008 03:50
    5

    Gràcies molt. Tenia aquest problema i era un estalviador de vida!

  6. Reza
    7 de març, 2008 04:15
    4

    Gràcies, molt bo definit

  7. Jamie Slater
    23 de febrer, 2008 03:40
    3

    Gràcies pel correu. Molt útil.

  8. Ben Hardy
    20 de febrer, 2008 02:45
    2

    Gràcies! Correu molt útil.

  9. Felix
    30 d'agost, 2007 18:33
    1

    Gràcies per posar això. No aconseguia l'error i m'estalviava frustració d'o molt. L'havia posat en la categoria 'de Gent de Goog' en qualsevol moment ;-)

Deixi una Resposta

Pot utilitzar aquests cordons: <A href=" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscrigui tret de comentaris ha estat impossibilitat. Per rebre notificació d'últims comentaris enviats, subscriure's a menjar My Digital Life Comments RSS o apuntar-se a rebre els comentaris nous a l'e-mail diari digereixen.
Custom Search

Articles Nous

Termes de Recerca Nous per l'Article

utilitzat en clau especificació sense un clau llargada - utilitzat en clau especificació sense un clau llargada - la columna de GOTA/TEXT utilitzava en clau especificació sense un clau llargada - error de mysql 1170 - la columna de GOTA/TEXT utilitzava en clau especificació sense un clau llargada - #1170 - la columna de GOTA/TEXT utilitzava en clau especificació sense un clau llargada - la columna de text de gota utilitzava en clau especificació sense un clau llargada - mysql 1170 - #1170 - la columna de GOTA/TEXT utilitzava en clau especificació sense un clau llargada - mysql utilitzava en clau especificació sense un clau llargada - la columna de GOTA/TEXT utilitzava en clau especificació sense un clau llargada - #1170 - la columna de GOTA/TEXT utilitzava en clau especificació sense un clau llargada - utilitzat en clau especificació sense un clau mysql de llargada - error 1170 mysql - " utilitzava en clau especificació sense un clau llargada" - utilitzava en clau especificació sense un clau llargada " - columna de GOTA/TEXT 'nom' utilitzat en clau especificació sense un clau llargada - la columna utilitzava en clau especificació sense un clau llargada - utilitzat en clau especificació sense un clau llargada - llargada clau de text de mysql - ERROR 1170 (42000): La columna de GOTA/TEXT utilitzava en especificació clau sense una llargada clau - mysql #1170 - clau primària de text de mysql - clau de text de mysql - ERROR 1170 (42000): La columna de GOTA/TEXT utilitzava en especificació clau sense una llargada clau - el text de mysql com la columna de GOTA/TEXT clau - El tipus de taula utilitzat no dóna suport a columnes de GOTA/TEXT - primària 'descripció' utilitzava en especificació clau sense una llargada clau - error 1170 (42000) - #1170 - columna de GOTA/TEXT - Error de MySQL Nr. 1170 - #1170 - columna de GOTA/TEXT que 'id' utilitzava en clau especificació sense una llargada clau - Error de MySQL Número 1170 - sense una llargada clau - #1170 - la columna de GOTA/TEXT 'nom' utilitzava en clau especificació sense una llargada clau - columna de GOTA/TEXT 'El text' utilitzava en clau especificació sense una llargada clau - text únic de mysql - clau especificació sense una llargada clau - la columna * utilitzava en clau especificació sense una llargada clau - #1170 mysql - text de mysql GOTA/TEXT únic - #1170 - - #1170 - la columna de GOTA/TEXT 'e-mail' utilitzava en clau especificació sense una llargada clau - el GOTA/TEXT de MySQL utilitzava en clau especificació sense una llargada clau - error 1170 - la columna de GOTA/TEXT utilitzava en clau especificació sense una llargada clau - utilitzat en clau especificació sense clau llargada - 1170 columna de text de gota utilitzada en clau especificació sense una llargada clau - la columna de GOTA/TEXT de mysql utilitzava en clau especificació sense una llargada clau - mysql 42000 -