mysql工作台错误代码1215 : can't add foreign key constraint

标签 mysql sql

我确信我已经遵循了其他帖子中的答案,但我的代码仍然是错误的。我不知道如何将外键添加到我的表中。我也遵循了教程网站上给出的说明。

DROP TABLE IF EXISTS `Spatuala` ;

CREATE TABLE IF NOT EXISTS `Spatuala`(
    `idSpatula` INT NOT NULL,
    `ProductName` VARCHAR(50) NULL,
    `Type` ENUM('Food', 'Drugs', 'Paints', 'Plaster') NOT NULL,
    `Size` VARCHAR(50),
    `Colour` VARCHAR(50),
    `Price` DECIMAL(10,2),
    `QuantityInStock` INT NOT NULL,
    PRIMARY KEY (`idSpatula`))
ENGINE = InnoDB;

DROP TABLE IF EXISTS `Order`;

CREATE TABLE IF NOT EXISTS `Order`(
    `idOrder` INT NOT NULL,
    `RequestedTime` DATETIME NOT NULL,
    `ResponsibleStaffMember` VARCHAR(100),
    `CustomerDetails` VARCHAR(300),
    PRIMARY KEY (`idOrder`))
ENGINE = InnoDB;

DROP TABLE IF EXISTS `OrderLineItem`;

CREATE TABLE IF NOT EXISTS `OrderLineItem`(
    `idSpatula` INT NOT NULL,
    `idOrder` INT NOT NULL,
    `Quantity` INT NOT NULL,
    FOREIGN KEY (`idSpatula`)
      REFERENCES `Spatula` (`idSpatula`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
    FOREIGN KEY (`idOrder`)
      REFERENCES `Order` (`idOrder`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION)
ENGINE = InnoDB;

最佳答案

第一个表名和最后一个表名使用时出现拼写错误。

下面的作品。

CREATE TABLE IF NOT EXISTS `Spatula`(
    `idSpatula` INT NOT NULL,
    `ProductName` VARCHAR(50) NULL,
    `Type` ENUM('Food', 'Drugs', 'Paints', 'Plaster') NOT NULL,
    `Size` VARCHAR(50),
    `Colour` VARCHAR(50),
    `Price` DECIMAL(10,2),
    `QuantityInStock` INT NOT NULL,
    PRIMARY KEY (`idSpatula`))
ENGINE = InnoDB;

DROP TABLE IF EXISTS `Order`;

CREATE TABLE IF NOT EXISTS `Order`(
    `idOrder` INT NOT NULL,
    `RequestedTime` DATETIME NOT NULL,
    `ResponsibleStaffMember` VARCHAR(100),
    `CustomerDetails` VARCHAR(300),
    PRIMARY KEY (`idOrder`))
ENGINE = InnoDB;

DROP TABLE IF EXISTS `OrderLineItem`;

CREATE TABLE IF NOT EXISTS `OrderLineItem`(
    `idSpatula` INT NOT NULL,
    `idOrder` INT NOT NULL,
    `Quantity` INT NOT NULL,
    FOREIGN KEY (`idSpatula`)
      REFERENCES `Spatula` (`idSpatula`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
    FOREIGN KEY (`idOrder`)
      REFERENCES `Order` (`idOrder`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
)ENGINE = InnoDB;

关于mysql工作台错误代码1215 : can't add foreign key constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970851/

相关文章:

javascript - window.location.reload(true) 没有正确重新加载页面

php - 在 MySql 数据库中存储表情符号。显示???在 phpmyadmin 中

sql - 如何在不直接在数据库上使用 fn_dblog 或 fn_dump_dblog 的情况下创建 sql 事务审计软件

MySQL触发器,在不活动后删除一行?

php codeigniter事件记录替换功能

动态页面上的 PHP 分页无法正常工作

mysql - 我应该使用什么数据类型在 mysql 数据库中保存 p 值?

SQL 存储过程除法四舍五入

mysql - 错误 1264,我需要 DECIMAL、FLOAT 还是 DOUBLE

sql - 这个MySQL更新语句怎么写呢?