не могу добавить ограничение внешнего ключа, ошибка 1215 в MySQL верстаке. - PullRequest
0 голосов
/ 13 сентября 2018

Так что это мой код, я не могу продолжить, потому что я всегда получаю эту ошибку ограничения внешнего ключа. Я проверил тип данных, они соответствуют. Куда я иду не так? Вся проблема сохраняется там, где требуются внешние ключи. Я только что опубликовал две таблицы здесь.

-- -----------------------------------------------------
-- 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 голосов
/ 13 сентября 2018

Я могу воспроизвести

Из этой инструкции следует:

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

и проблема в имени базы данных, возможно потому, что оно начинается с цифры, а не с буквы.

Это работает:

REFERENCES `AccountType` (`AccountTypeID`)

Так что избавьтесь от имени базы данных. Если вы выполняете это, не находясь в базе данных 44376936, выполните эту инструкцию в начале вашего сценария:

USE `44376936`;

Пример Rextester

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...