Como dice el título intento cambiar una columna de tipo INT a UNSIGNED INT pero una vez ya está creada y me muestra el siguiente error:
Código SQL:
Ver original
/* SQL Error (1025): Error on rename of '.\bbdd\#sql-844_2c07' to '.\bbdd\atributos' (errno: 150) Foreign key constraint is incorrectly formed */
El código de creación de la tabla es el siguiente:
Código SQL:
Y la consulta que lanzo es la siguiente:Ver original
CREATE TABLE `atributos` ( `id_atributo` INT(10) NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(50) NOT NULL, `columna` VARCHAR(50) NOT NULL, `tipo` VARCHAR(45) NOT NULL DEFAULT 'text', `editable` TINYINT(1) NOT NULL DEFAULT '1', `data` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`id_atributo`) ) ENGINE=InnoDB ROW_FORMAT=DEFAULT AUTO_INCREMENT=18
Código SQL:
Ver original
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; ALTER TABLE `atributos` CHANGE COLUMN `id_atributo` `id_atributo` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Por lo que me ha parecido ver en algunos sitios, una vez creada la tabla, ya no puedes cambiar a unsiged el campo, pero eso me extraña un poco.
Alguien tiene idea de que puede ser?
Muchas gracias.