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