Hola Gente.
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:
Ver originalCREATE 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
Y la consulta que lanzo es la siguiente:
Código SQL:
Ver originalSET @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.