I've got the famous 1215 Error but I can not find the reason why...
I've already seen several topics as MySQL Error 1215: Cannot add foreign key constraint , and I followed all their tips, but I don't see the error....
(Squemas are automatically generated by MySQL Workbench...)
With the following structures, for the table "modalidad", I got:
Error code 1215: Cannot add foreign key constraint
Code:
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,ALLOW_INVALID_DATES';
DROP TABLE IF EXISTS `qvh056`.`centro` ;
CREATE TABLE IF NOT EXISTS `qvh056`.`centro` (
`id` INT NOT NULL COMMENT 'codigo',
`nombre` VARCHAR(45) NULL,
`orden` INT NULL,
`activo` TINYINT(1) NULL DEFAULT 1,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
DROP TABLE IF EXISTS `qvh056`.`compania` ;
CREATE TABLE IF NOT EXISTS `qvh056`.`compania` (
`id` INT NOT NULL,
`codigo` INT NOT NULL COMMENT 'Codigo contable. Se puede identificar a la compañia con empresa y codigo.',
`nombre` VARCHAR(100) NOT NULL,
`alias` VARCHAR(100) NULL,
`centro_id` INT NOT NULL DEFAULT 0 COMMENT '\"empresa\"',
PRIMARY KEY (`id`),
INDEX `fk_compania_centro1_idx` (`centro_id` ASC),
UNIQUE INDEX `id_UNIQUE` (`id` ASC),
CONSTRAINT `fk_compania_centro1`
FOREIGN KEY (`centro_id`)
REFERENCES `qvh056`.`centro` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
DROP TABLE IF EXISTS `qvh056`.`modalidad` ;
CREATE TABLE IF NOT EXISTS `qvh056`.`modalidad` (
`id` CHAR(4) NOT NULL COMMENT 'codigo + centro\n',
`codigo` CHAR(1) NOT NULL,
`nombre` VARCHAR(45) NOT NULL,
`centro_id` INT NOT NULL,
`modality` CHAR(2) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC),
INDEX `fk_modalidad_centro1_idx` (`centro_id` ASC),
CONSTRAINT `fk_modalidad_centro1`
FOREIGN KEY (`centro_id`)
REFERENCES `qvh056`.`centro` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;