MySQL - Error al crear tabla

   
Vista:

Error al crear tabla

Publicado por Luis (9 intervenciones) el 03/12/2013 14:41:15
Hola, tengo un mysql 5.1.66 en un linux y al intentar crear la siguiente tabla me da error :
Error while executing this query:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE `geo_links` (
  `geo_id` int(11) NOT NULL auto_increment,
  `geo_key` decimal(6,0) NOT NULL default '0',
  `geo_tipo` enum('Texto','Documento','Productores') NOT NULL default 'Texto',
  `geo_pt` point NOT NULL default '',
  `geo_points` text COMMENT 'Puntos Codificados',
  `geo_levels` varchar(250) default NULL COMMENT 'Niveles Puntos',
  `geo_poligono` tinyint(1) NOT NULL default '0' COMMENT 'Ruta o Poligono',
  `geo_pais_key` int(11) NOT NULL default '73' COMMENT 'Pais',
  `geo_pro_key` int(11) default NULL COMMENT 'Provincia',
  `geo_mun_key` int(11) default NULL COMMENT 'Municipio',
  PRIMARY KEY  (`geo_id`,`geo_key`,`geo_tipo`),
  SPATIAL KEY `geo_pt` (`geo_pt`(32))
) ENGINE=MyISAM AUTO_INCREMENT=137 DEFAULT CHARSET=utf8;

The server has returned this error message:Parte de la clave es erronea. Una parte de la clave no es una cadena o la longitud usada es tan grande como la parte de la clave
MySQL Error.

Alguien sabe cómo sulucionarlo ?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error al crear tabla

Publicado por Jose Manuel josema@orbisapientia.com (7 intervenciones) el 04/12/2013 20:45:48
Hola:

Con la consulta me han aparecido dos errores. El primero:

#1101 - BLOB/TEXT column 'geo_pt' can't have a default value

...se soluciona quitando el valor por defecto del campo geo_pt, ya que no puede tener valor por defecto:

1
`geo_pt` point NOT NULL,


El segundo error:

#1089 - Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys

...ocurre porque intentas crear una clave basada en un tipo de dato que almacena valores numéricos como POINT, como si fuera basada en un tipo de dato cadena:

1
SPATIAL KEY `geo_pt` (`geo_pt`(32)) ===> ¡¡ERROR!!

1
SPATIAL KEY `geo_pt` (`geo_pt`) ===> CORRECTO


Espero que te haya orientado al menos. Un saludo.

José Manuel
=======================
http://www.orbisapientia.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Error al crear tabla

Publicado por toti (9 intervenciones) el 05/12/2013 08:11:49
Hola José Manuel,

en efecto, he realizado esos cambios y funciona perfectamente.

Muchas gracias.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar