无法添加外键约束,mysql工作台中出现错误1215。

时间:2018-09-13 09:56:28

标签: mysql database

这是我的代码,我无法继续,因为我总是遇到该外键约束错误。我检查了数据类型是否一致。我要去哪里错了?在需要外键的地方,所有问题仍然存在。我刚刚在这里张贴了两张桌子。

-- -----------------------------------------------------
-- Table `44376936`.`AccountType`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `44376936`.`AccountType` ;

CREATE TABLE IF NOT EXISTS `44376936`.`AccountType` (
  `AccountTypeID` float NOT NULL,
  `AccountTypeName` VARCHAR(45) NULL,
  `AccountTypeDesc` VARCHAR(45) NULL,
  `AccountTypeInterestRate` FLOAT NULL,
  `AccountTypeServiceFee` FLOAT NULL,
  PRIMARY KEY (`AccountTypeID`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `44376936`.`Account`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `44376936`.`Account` ;

CREATE TABLE IF NOT EXISTS `44376936`.`Account` (
  `AccountBSB` INT NOT NULL,
  `AccountNumber` INT NOT NULL,
  `AccountCurrentBalance` FLOAT NULL,
  `AccountType_AccountTypeID` Float NOT NULL,
  PRIMARY KEY (`AccountBSB`, `AccountNumber`, `AccountType_AccountTypeID`),
  INDEX `fk_Account_AccountType_idx` (`AccountType_AccountTypeID` ASC),
  CONSTRAINT `fk_Account_AccountType`
    FOREIGN KEY (`AccountType_AccountTypeID`)
    REFERENCES `44376936`.`AccountType` (`AccountTypeID`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

1 个答案:

答案 0 :(得分:1)

我可以复制

它来自此指令:

REFERENCES `44376936`.`AccountType` (`AccountTypeID`)

问题在于数据库名称,可能是因为它以数字而不是字母开头。

这有效:

REFERENCES `AccountType` (`AccountTypeID`)

因此摆脱数据库名称。如果您不使用44376936数据库就运行此命令,请在脚本开头执行以下指令:

USE `44376936`;

Rextester example