MySQL Error 1170 (42000): BLOB/TEXT Column Used in Key Specification Without a Key Length MySQL Помилка 1170 (42000): BLOB / TEXT стовпець, який використовується у визначенні ключа без вказання довжини ключа

When creating a new table or altering an existing table with primary keys, unique constraints and indexes, or when defining a new index with Alter Table manipulation statement in MySQL database, the following error may occur and prohibit the the command from completing: Під час створення нової таблиці або змінити існуючу таблицю первинних ключів, унікально обмеження та індекси, або при визначенні нового індексу з Alter Table маніпуляції заявою в базі даних MySQL, така помилка може відбутися і заборонити команда від завершення:

ERROR 1170 (42000): BLOB/TEXT column 'field_name' used in key specification without a key length ПОМИЛКА 1170 (42000): BLOB / TEXT стовпець "field_name ', яка використовується у визначенні ключа без вказання довжини ключа

The error happens because MySQL can index only the first N chars of a BLOB or TEXT column. Помилка відбувається тому, що MySQL може індексувати тільки перші N символів з BLOB або TEXT колонці. So The error mainly happen when there is a field/column type of TEXT or BLOB or those belongs to TEXT or BLOB types such as TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT, and LONGTEXT that you try to make as primary key or index. Така помилка основному відбуватиметься, коли є поля / колонки тип тексту або BLOB або тих, належить TEXT або BLOB типів, таких як ТШУВЬОВ, MEDIUMBLOB, LONGBLOB, ТШУТЕХТ, MEDIUMTEXT, і LONGTEXT, що ви намагаєтесь зробити як первинний ключ або індекс. With full BLOB or TEXT without the length value, MySQL is unable to guarantee the uniqueness of the column as it's of variable and dynamic size. При повному або BLOB текст без значення довжини, MySQL не в змозі гарантувати унікальність колонки як це змінного і динамічного розміру. So, when using BLOB or TEXT types as index, the value of N must be supplied so that MySQL can determine the key length. Таким чином, при використанні BLOB або TEXT типи як індекс, значення N повинно бути представлено так, щоб MySQL можна визначити довжину ключа. However, MySQL doesn't support limit on TEXT or BLOB. Однак, MySQL не підтримує обмеження на текст або BLOB. TEXT(88) simply won't work. TEXT (88), просто не буде працювати.

The error will also pop up when you try to convert a table column from non-TEXT and non-BLOB type such as VARCHAR and ENUM into TEXT or BLOB type, with the column already been defined as unique constraints or index. Помилка буде також спливаючі при спробі перетворити колонку таблиці від Non-Text і не BLOB таких, як тип VARCHAR і ENUM в текст або BLOB типу, з колонкою вже визначені як унікально обмеження або індекс. The Alter Table SQL command will fail. Alter Table SQL команда не буде виконана.

The solution to the problem is to remove the TEXT or BLOB column from the index or unique constraint, or set another field as primary key. Рішенням проблеми є видалення тексту або BLOB колонки з індексу або унікально обмеження, або встановіть інше поле як первинний ключ. If you can't do that, and wanting to place a limit on the TEXT or BLOB column, try to use VARCHAR type and place a limit of length on it. Якщо ви не можете зробити це, і бажаючи поставити обмеження на текст або BLOB колонки, постарайтеся використовувати VARCHAR тип і місце обмеження довжини на ньому. By default, VARCHAR is limited to a maximum of 255 characters and its limit must be specified implicitly within a bracket right after its declaration, ie VARCHAR(200) will limit it to 200 characters long only. За замовчуванням, VARCHAR обмежено максимум 255 характерів і свою межу повинен бути зазначений у неявному кронштейни відразу після своєї заяви, тобто VARCHAR (200) обмежити його до 200 символів тільки.

Sometimes, even though you don't use TEXT or BLOB related type in your table, the Error 1170 may also appear. Іноді, навіть якщо ви не використовуєте TEXT або BLOB пов'язані типу в таблиці, помилка 1170 може також з'явитися. It happens in situation such as when you specify VARCHAR column as primary key, but wrongly set its length or characters size. Це відбувається в ситуації, подібної тій, коли ви вказуєте УАКСНАК як первинний ключ, але неправильно встановити його довжину або символи розміру. VARCHAR can only accepts up to 256 characters, so anything such as VARCHAR(512) will force MySQL to auto-convert the VARCHAR(512) to a SMALLTEXT datatype, which subsequently fail with error 1170 on key length if the column is used as primary key or unique or non-unique index. VARCHAR може приймати до 256 символів, тому що всі такі, як VARCHAR (512) змусить MySQL для автоматичного перетворення VARCHAR (512), щоб SMALLTEXT тип даних, які згодом невдало з помилкою 1170 на ключове довжині якщо колонка використовується як первинний ключ або унікально або не унікальний індекс. To solve this problem, specify a figure less than 256 as the size for VARCHAR field. Щоб вирішити цю проблему, задайте фігура менш ніж 256 як розмір для польових VARCHAR.

IMPORTANT : The page is machine translated and provided "as is" without warranty. ВАЖЛИВО: Сторінка машина переведена і надаються "як є" без гарантії. Machine translation may be difficult to understand. Машинний переклад може бути важким для розуміння. Please refer to Будь ласка, зверніться до original English article оригінальний англійська статтю whenever possible. коли це можливо.


9 Responses to “MySQL Error 1170 (42000): BLOB/TEXT Column Used in Key Specification Without a Key Length” 9 Відповідь до "MySQL Помилка 1170 (42000): BLOB / TEXT стовпець, який використовується у визначенні ключа без вказання довжини ключа"

  1. Eli Manobella Елі Manobella
    April 30th, 2009 22:32 30 квітня 2009 22:32
    9 9

    Thank you for the post. Дякуємо за повідомлення.
    I need a key that is longer then 256. Мені потрібен ключ, який довший, то 256.

    What can I do? Що я можу зробити?

    googling it for the past 3 hours with no luck… Googling вона за останні 3 години не пощастило ...
    (Paco Zarabozo comment did not work for me) (Paco Zarabozo коментар не працює для мене)

  2. Preaching to the UTF8 converted at hontou ni sou omou? Як вести себе з UTF8 перетворені в hontou ні гроша omou?
    December 13th, 2008 22:20 13 грудня 2008 22:20
    8 8

    [...] I ran into some problems, I back-pedalled to square one. [...] Я зіткнувся з деякими проблемами, я назад-pedalled до початкової точки. Thankfully my backup restored the Latin1 database without any [...] На щастя, моя резервного відновили Latin1 базу даних без [...]

  3. Paco Zarabozo Пако Zarabozo
    October 29th, 2008 10:16 29 жовтня 2008 10:16
    7 7

    Well, here's another solution. Ну, ось інше рішення. You can actually specify the key length for your index while keeping your field as longtext. Ви дійсно можете вказати довжину ключа для вашого індексу, при цьому Ваш поле як LONGTEXT. This is an example: Ось приклад:

    create table messages ( створити таблицю повідомлень (
    id int(20) not null auto_increment, ID INT (20) NOT NULL AUTO_INCREMENT,
    message longtext, Повідомлення LONGTEXT,
    index (message(996), id) Index (повідомлень (996), ID)
    ); );

    desc messages; Опис повідомлень;
    show index from messages; Показати індекс з повідомлень;

    996 is the maximium key length mySQL has accepted for me. 996 є maximium довжина ключа MySQL прийняли за мене.

    Cheers, Ура,

    Paco Paco

  4. David Девід
    October 27th, 2008 19:50 27 жовтня 2008 19:50
    6 6

    Thanks a lot! Спасибо большое!

  5. Marius Vilaia Маріус Vilaia
    October 6th, 2008 03:50 6 жовтня 2008 03:50
    5 5

    Thank you very much. Большое спасибо. I had this problem and you were a life saver! Я мав цю проблему, і ви були заставки життя!

  6. Reza Реза
    March 7th, 2008 04:15 7 березня 2008 04:15
    4 4

    Thanks, very good defined Спасибі, дуже добре визначені

  7. Jamie Slater Джеймі Слейтер
    February 23rd, 2008 03:40 23 лютого 2008 03:40
    3 3

    Thanks for the post. Дякуємо за повідомлення. Very helpful. Дуже корисно.

  8. Ben Hardy Бена Харді
    February 20th, 2008 02:45 20 лютого 2008 02:45
    2 2

    Thanks! Спасибо! Very useful post. Дуже корисний пост.

  9. Felix Фелікс
    August 30th, 2007 18:33 30 серпня 2007 18:33
    1 1

    Thanks for putting this up. Спасибо за включення цього вгору. I didn't get the error and you saved me a lot o frustration. Я не отримую повідомлення про помилку, і ви мене врятували розчарування багатьох O. I'd put you in the 'Goog people' category anytime Я б поставити вас у категорію "Goog люди" у будь-який час ;-)

Leave a Reply Написати відповідь

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> Ви можете використовувати ці теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <справі DateTime = ""> <em> <i> <q Cite=""> <strike> <strong>

Subscribe to comments feature has been disabled. Підписатися на коментарі функція була відключена. To receive notification of latest comments posted, subscribe to Щоб отримувати повідомлення про останні коментарях, підписатися My Digital Life Comments RSS feed Моя Цифрова життя Коментарі RSS Feed or або register to receive Увійдіть, щоб отримувати new comments in daily email digest. нові коментарі в щоденній електронній пошті.
Custom Search

New Articles Нові статті

Incoming Search Terms for the Article Вхідні терміни пошуку для статті

BLOB/TEXT column used in key specification without a key length BLOB / TEXT стовпець, який використовується у визначенні ключа без вказання довжини ключа - -- #1170 - BLOB/TEXT column 'nid' used in key specification without a key length # 1170 - BLOB / TEXT стовпець "NID 'використано у визначенні ключа без вказання довжини ключа - -- http://www.'PinCode' used in key specification without a key length.com/ http://www. 'PinCode' використано у визначенні ключа без вказання ключові length.com / - -- #1170 - BLOB/TEXT column \'Imie\' used in key specification without a key length # 1170 - BLOB / TEXT колонку \ 'Imie \', що використовується у визначенні ключа без вказання довжини ключа - -- #1170 - BLOB/TEXT column \'username\' used in key specification without a key length # 1170 - BLOB / TEXT колонку \ "Ім'я користувача \ ', що використовується у визначенні ключа без вказання довжини ключа - -- #1170 - BLOB/TEXT column # 1170 - BLOB / TEXT колонка - -- #1170 - BLOB/TEXT column used in key specification without a key length # 1170 - BLOB / TEXT стовпець, який використовується у визначенні ключа без вказання довжини ключа - -- BLOB/TEXT column '' used in key specification without a key length BLOB / TEXT колонка'', використовуваних у визначенні ключа без вказання довжини ключа - -- column 'mfr_id' used in key specification without a key length стовпець "mfr_id 'використано у визначенні ключа без вказання довжини ключа - -- used in key specification without a key length використовуватися у визначенні ключа без вказання довжини ключа - -- - BLOB/TEXT column used in key specification without a key length - BLOB / TEXT стовпець, який використовується у визначенні ключа без вказання довжини ключа - -- 1170 BLOB/TEXT column \'title\' used in key specification without a key length. 1170 BLOB / TEXT колонку \ 'Заголовок \', що використовується у визначенні ключа без вказання довжини ключа. - -- BLOB/TEXT column 'text' used in key specification without a key length BLOB / TEXT стовпець 'Текст', яка використовується у визначенні ключа без вказання довжини ключа - -- BLOB/TEXT column used in key specification without a key length BLOB / TEXT стовпець, який використовується у визначенні ключа без вказання довжини ключа - -- BLOB/TEXT column '' used in key specification without a key length BLOB / TEXT колонка'', використовуваних у визначенні ключа без вказання довжини ключа - -- column used in key specification without a key length query стовпців, що використовуються в ключовою специфікації без ключовою довжину запиту - -- key specification without a key length ключові специфікації без ключовою довжини - -- mysql "used in key specification without a key length" MySQL ", що використовується у визначенні ключа без вказання довжини ключа" - -- mysql 1170 MySQL 1170 - -- mysql error number 1170 MySQL номер помилки 1170 - -- mysql smalltext limit MySQL межа SMALLTEXT - -- post_text without key length post_text без довжина ключа - -- sql used in a key specification without a key length SQL, використовуваних у визначенні ключа без вказання довжини ключа - -- TEXT column 'comment' used in key specification without a key length TEXT стовпець 'коментарі', яка використовується у визначенні ключа без вказання довжини ключа - -- used in key specification without a key length використовуватися у визначенні ключа без вказання довжини ключа - -- #1170 - BLOB/TEXT column # 1170 - BLOB / TEXT колонка - -- ERROR 1170 (42000): BLOB/TEXT column 'value' used in key specification without a key length ПОМИЛКА 1170 (42000): BLOB / TEXT стовпець "цінність" використовується у визначенні ключа без вказання довжини ключа - -- mysql used in key specification without a key length MySQL використовується у визначенні ключа без вказання довжини ключа - --