我看不到这个创建表句子的问题。我已经仔细检查了,但找不到错误。
-- -----------------------------------------------------
-- Table `agentes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `agentes` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`codAgente` VARCHAR(8) NOT NULL ,
`clave` VARCHAR(8) NOT NULL ,
`nombre` VARCHAR(50) NOT NULL ,
`apellido1` VARCHAR(50) NOT NULL ,
`apellido2` VARCHAR(50) NOT NULL ,
`email` VARCHAR(100) NOT NULL ,
`usuarioDA` VARCHAR(45) NULL ,
`passDA` VARCHAR(100) NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
COLLATE = latin1_spanish_ci;
-- -----------------------------------------------------
-- Table `cola`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `colas` (
`idCola` INT NOT NULL AUTO_INCREMENT ,
`cliente` INT NOT NULL ,
`nombre` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`idCola`) ,
INDEX `fk_colas_clientes1` (`cliente` ASC) ,
CONSTRAINT `fk_colas_clientes1`
FOREIGN KEY (`cliente` )
REFERENCES `clientes` (`idCliente` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `relColaExt`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `relColaExt` (
`id` INT NOT NULL AUTO_INCREMENT ,
`codAgente` VARCHAR(8) NOT NULL ,
`cola` VARCHAR(45) NOT NULL ,
`prioridad` INT NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `id` (`id` ASC) ,
INDEX `fk_relColaExt_agentes1` (`codAgente` ASC) ,
INDEX `fk_relColaExt_colas1` (`cola` ASC) ,
CONSTRAINT `fk_relColaExt_agentes1`
FOREIGN KEY (`codAgente` )
REFERENCES `agentes` (`codAgente` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_relColaExt_colas1`
FOREIGN KEY (`cola` )
REFERENCES `colas` (`nombre` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
它抛出 #1005 - 无法创建表 './centralita/relColaExt.frm' (errno: 150) 创建 relColaExt 表。
这是一个外键问题,但我看不出出了什么问题。请问有人可以帮我吗?
根据MySQL手册页上关于外键的评论,这可能是由于VARCHAR列的编码不同。在表 agentes
中,您定义了排序规则,但在relColaExt
中没有。
尝试在每个表上使用相同的排序规则(通过定义它或让默认值启动)。