MySQL Error 1170 (42000): BLOB/TEXT Column Used in Key Specification Without a Key Length Erreur MySQL 1170 (42000): BLOB / TEXT colonne utilisés à Key Spécification Sans une clé Longueur
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: Lors de la création d'une nouvelle table ou de modifier un tableau existant avec les clés primaires, d'unicité et les index, ou lorsqu'il s'agit de définir un nouvel index avec ALTER TABLE manipulation déclaration en base de données MySQL, l'erreur suivante se produire mai et interdire la commande de la remplir:
ERROR 1170 (42000): BLOB/TEXT column ‘field_name’ used in key specification without a key length ERROR 1170 (42000): BLOB / TEXT colonne 'field_name' utilisés dans les spécifications sans une longueur de clé
The error happens because MySQL can index only the first N chars of a BLOB or TEXT column. L'erreur se produit parce que MySQL ne peut indexer les n premiers caractères d'un BLOB ou TEXT colonne. 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. L'erreur donc principalement se produire quand il ya un champ / colonne de type BLOB ou TEXT ou ceux appartient à BLOB ou TEXT types TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT, et LONGTEXT que vous essayez de faire comme clé primaire ou l'index. 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. Avec plein de type BLOB ou TEXT la longueur sans valeur, MySQL n'est pas en mesure de garantir le caractère unique de la colonne comme il est de la variable taille et dynamique. So, when using BLOB or TEXT types as index, the value of N must be supplied so that MySQL can determine the key length. Ainsi, lors de l'utilisation de type BLOB ou TEXT types sous forme d'indice, la valeur de N doit être fournie de manière à ce que MySQL peut déterminer la longueur de clé. However, MySQL doesn’t support limit on TEXT or BLOB. Toutefois, MySQL ne supporte pas les limite de type BLOB ou TEXT. TEXT(88) simply won’t work. TEXTE (88) ne mènera à rien.
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. L'erreur sera également apparaître lorsque vous tentez de convertir une colonne du tableau de non-TEXT et non de type BLOB comme VARCHAR et ENUM en texte ou de type BLOB, avec la colonne déjà été défini comme unique, ou indice. The Alter Table SQL command will fail. L'ALTER TABLE commande SQL est vouée à l'échec.
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. La solution au problème est de supprimer le texte colonne BLOB ou de l'indice unique ou contrainte, ou un autre champ comme clé primaire. 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. Si vous ne pouvez pas faire cela et à vouloir mettre une limite sur le texte ou la colonne BLOB, essayez d'utiliser VARCHAR type et lieu une limite de longueur sur celui-ci. 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. Par défaut, VARCHAR est limitée à un maximum de 255 caractères et ses limites doivent être précisées implicitement dans un support juste après sa déclaration, c'est-à-dire VARCHAR (200) se limite à 200 caractères.
Sometimes, even though you don’t use TEXT or BLOB related type in your table, the Error 1170 may also appear. Parfois, même si vous n'utilisez pas de texte ou de type BLOB liés à votre table, l'erreur mai 1170 également apparaître. It happens in situation such as when you specify VARCHAR column as primary key, but wrongly set its length or characters size. Il se produit en situation telle que lorsque vous indiquez la colonne VARCHAR comme clé primaire, mais à tort, régler sa longueur ou la taille des caractères. 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 ne peut accepte jusqu'à 256 caractères, donc tout ce que ces VARCHAR (512) forcera MySQL à l'auto-convertir les VARCHAR (512) à un SMALLTEXT de données, qui a par la suite échoue avec l'erreur 1170 sur la longueur de clé si la colonne est utilisé comme primaire ou clé unique ou non unique index. To solve this problem, specify a figure less than 256 as the size for VARCHAR field. Pour résoudre ce problème, spécifiez un chiffre inférieur à 256 que la taille de VARCHAR domaine.
IMPORTANT : This is a machine translated page which is provided "as is" without warranty. IMPORTANT: Il s'agit d'une machine qui traduit la page est fourni «tel quel», sans garantie. Machine translation may be difficult to understand. La traduction automatique mai être difficile à comprendre. Please refer to S’il vous plaît se référer à original English article article original anglais whenever possible. chaque fois que possible.
Share and contribute or get technical support and help at Partagez et contribuer ou obtenir de l'aide technique et l'aide à My Digital Life Forums Ma vie numérique forums .
Related Articles Articles connexes
- How to Convert Character Set and Collation of WordPress Database Comment convertir les caractères et collation de base de données WordPress
- Installing Web Server in FreeBSD 6.0 with Apache 2.2, MySQL 5.0 and PHP 5 - Part 3 Installation du serveur Web dans FreeBSD 6,0 avec Apache 2,2, 5,0 MySQL et PHP 5 - Partie 3
- Create New Table by Selecting Data from Other Tables with CREATE TABLE AS Créer un nouveau tableau en sélectionnant des données provenant d'autres tables avec CREATE TABLE AS
- Install Web Server in Windows XP with Apache2, PHP5 and MySQL4 - Part 4 L'installation de Web Server sous Windows XP avec Apache2, MySQL4 et PHP5 - Partie 4
- Change and Reset MySQL root Password Changement et Réinitialiser le mot de passe root
- ORA-02449 Oracle Drop Table Error ORA-02449 Oracle DROP TABLE erreur
- Enable MySQL InnoDB Storage Engine Support in XAMPP Installation Activer MySQL InnoDB support moteur dans l'installation de XAMPP
- WordPress MySQL SQL Query Error in WPDB Class WordPress MySQL SQL Query erreur dans la classe WPDB
- Easily Duplicate, Copy or Backup Tables in Oracle, PostgreSQL, DB2 and SQLite with Create Table As SQL Dupliquer facilement, de copie ou de sauvegarde des tables d'Oracle, PostgreSQL, DB2 et SQLite avec Create Table que SQL
- Oracle PL/SQL ORA-00947 Not Enough Values Error Oracle PL / SQL ORA-00947 Pas assez de valeurs erreur

































August 30th, 2007 18:33 Août 30th, 2007 18:33
Thanks for putting this up. Merci pour cette mise en place. I didn’t get the error and you saved me a lot o frustration. Je n'ai pas l'erreur et vous m'a sauvé beaucoup de frustration o. I’d put you in the ‘Goog people’ category anytime Je vous mettre dans le «Goog personnes catégorie en tout temps
February 20th, 2008 02:45 20ème Février, 2008 02:45
Thanks! Merci! Very useful post. Très utile après.
February 23rd, 2008 03:40 23ème Février, 2008 03:40
Thanks for the post. Merci pour le poste. Very helpful. Très utile.
March 7th, 2008 04:15 Mars 7ème, 2008 04:15
Thanks, very good defined Merci, très bien définis