Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Crear un index

Estas en el tema de Crear un index en el foro de Mysql en Foros del Web. Hola q tal, Estoy tratando de crear un indice en una tabla de mi base de datos, pero me da el siguiente error: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 08/10/2012, 09:50
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Crear un index

Hola q tal,
Estoy tratando de crear un indice en una tabla de mi base de datos, pero me da el siguiente error:

Código MySQL:
Ver original
  1. ALTER TABLE `melon_libros`.`libros` ADD INDEX `autor ` ( `autor` )

MySQL ha dicho: Documentación
#1170 - BLOB/TEXT column 'autor' used in key specification without a key length

¿qué significa?

gracias!

Última edición por gnzsoloyo; 08/10/2012 a las 10:26
  #2 (permalink)  
Antiguo 08/10/2012, 10:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Crear un index

Cita:
¿qué significa?
Posiblemente que deberías leer el manual antes, para conocer las restricciones a los indices.
Así sabrías que no se pueden hacer indices sobre campos de ese tipo sin acortar la longitud de la clave, porque no se puede indexar un texto completo como un sólo objeto.
Hay un límite al tamaño de las claves.
Verifica en el manual
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/10/2012, 10:47
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Crear un index

sería esto el manual, http://file.upi.edu/dbna/Documentation.html ??
  #4 (permalink)  
Antiguo 08/10/2012, 11:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Crear un index

Manual de MySQL, no de phpMyadmin.

¿Tienes claro que el phpMyadmin es un fornt-end auq esirve para trabajar con MySQL, pero no es el MySQL?
¿Y que PHP no es MySQL, ni tiene relación con él?

MySQL::Sintaxis de CREATE INDEX



Lo que tienes que tener muy en cuenta es:

Cita:

Con sintaxis col_name(length) en una especificación de índice, puede crear un índice que use sólo los primeros length caracteres de una columna CHAR o VARCHAR . Indexar sólo un prefijo de valores de columna como este puede hacer el fichero de índice mucho más pequeño. Consulte Sección 7.4.3, “Índices de columna”.

En MySQL 5.0, los motores MyISAM y InnoDB soportan indexación en columnas BLOB y TEXT . Al indexar columnas BLOB o TEXT debe especificar una longitud de prefijo para el índice. Por ejemplo:
Código MySQL:
Ver original
  1. CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
¿Queda clara la implicación gramatical de debe?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 08/10/2012, 11:50
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Crear un index

pero ahí creas una tabla, yo solo quiero crear un index a una tabla ya creada

¿no?
  #6 (permalink)  
Antiguo 08/10/2012, 12:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Crear un index

Cita:
Iniciado por miliky Ver Mensaje
pero ahí creas una tabla, yo solo quiero crear un index a una tabla ya creada

¿no?
Eso no es lo importante.
Lee con atención lo que te estoy poniendo en lo que dice:
Cita:
Al indexar columnas BLOB o TEXT debe especificar una longitud de prefijo para el índice
¿Te queda más claro?

Por cierto: Los indices se pueden crear junto con la tabla. No hay nada que lo impida, y eso es lo que hace esa sentencia, pero las restricciones son las mismas en lo que refiere a la definición de la clave.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 08/10/2012, 12:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Crear un index

miliky,
tú conoces la sintaxis para añadir a una tabla ya creada. Si el campo blob es autor, pues lo haces así:
Código MySQL:
Ver original
  1. ALTER TABLE `melon_libros`.`libros` ADD INDEX(autor(10))

Perdón, me pisé con gnzsoloyo.

Etiquetas: index, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.