MySQL: errno 1005

|
Si ejecutas un script de SQL y obtienes éste error como resultado, es debido a que tienes Foreign Keys (Claves Foráneas) con tipos de campos incompatibles entre sí:

CREATE TABLE IF NOT EXISTS `intranet`.`sefoe_departamentos` (
`iddepto` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`departamento` VARCHAR(255) NOT NULL ,
`iddepto_superior` BIGINT NOT NULL DEFAULT 0 ,
PRIMARY KEY (`iddepto`) ,
INDEX `contiene` (`iddepto_superior` ASC) ,
CONSTRAINT `contiene`
FOREIGN KEY (`iddepto_superior` )
REFERENCES `intranet`.`sefoe_departamentos` (`iddepto` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
COMMENT = 'Estructura organizacional de los departamentos'


A primera vista parece un código válido, pero fijense en los FK's:
iddepto es BIGINT SIN SIGNO e iddepto_superior unicamente es BIGINT, una pequeña variante tan pequeña como ésta puede arrojarnos el molesto ERRNO 1005.

También se encuentra el caso de que especifiques que en un ON DELETE vuelva NULL un campo que previamente se había declarado como NOT NULL.

2 comentarios:

Gustavo dijo...

Pos tratándose de este tipo de información estaremos leyéndolo.

Va de una vez pal lector de feeds.

Saludos!

Rover dijo...

tengo algo olvidado este blog, comenzaré a recopilar datos de nuevo.

Publicar un comentario