Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2015, 05:15
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Cambiar columna varchar(45) a TINYTEXT

Tengo la siguiente tabla (este es el show create table)

Código SQL:
Ver original
  1. CREATE TABLE `articles` (
  2.  `idarticles` INT(11) NOT NULL AUTO_INCREMENT,
  3.  `title` VARCHAR(45) NOT NULL,
  4.  `article` text NOT NULL,
  5.  `summary` tinytext,
  6.  `tags` tinytext,
  7.  `idusers` INT(11) DEFAULT NULL,
  8.  `idcategories` INT(11) DEFAULT NULL,
  9.  `datetime` datetime NOT NULL,
  10.  `idcollections` INT(11) DEFAULT NULL,
  11.  PRIMARY KEY (`idarticles`),
  12.  KEY `title` (`title`),
  13.  KEY `idusers_idx` (`idusers`),
  14.  KEY `idcategories_idx` (`idcategories`),
  15.  KEY `datetime` (`datetime`),
  16.  KEY `idcollections_idx` (`idcollections`),
  17.  CONSTRAINT `idcategories` FOREIGN KEY (`idcategories`) REFERENCES `categories` (`idcategories`) ON DELETE CASCADE ON UPDATE CASCADE,
  18.  CONSTRAINT `idcollections` FOREIGN KEY (`idcollections`) REFERENCES `collections` (`idcollections`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  19.  CONSTRAINT `idusers` FOREIGN KEY (`idusers`) REFERENCES `users` (`idusers`) ON DELETE CASCADE ON UPDATE CASCADE
  20. ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8

Esto lo creó MySQL Workbench.

Con el mismo MySQL Workbench, he querido cambiar el varchar(45) de la columna title, ya que se me queda corto con 45 caracteres, y lo quiero poner en TINYTEXT, ya que es el siguiente en longitud más grande.

Al aplicarlo en el diagrama ERR no me dió ningún error, pero al actualizarlo en la BD sí me dio un error, es el siguiente

Cita:
Executing SQL script in server
ERROR: Error 1170: BLOB/TEXT column 'title' used in key specification without a key length
SQL Code:
ALTER TABLE `bitplace`.`articles`
CHANGE COLUMN `title` `title` TINYTEXT NOT NULL COMMENT ''

SQL script execution finished: statements: 3 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch
No entiendo por qué ese error, ¿alguien puede ayudarme?

Saludos :D
__________________
Ayúdame a hacerlo por mi mismo.

Última edición por guardarmicorreo; 21/07/2015 a las 05:25