Я исправил все ваши проблемы.
Первая проблема заключается в том, что не определили CREATE Statement
для таблицы Customers
и пытаются добавить FOREIGN KEY к этой несуществующей таблице в операторе CREATE TABLE salesorders
вследующая строка
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
Чтобы это исправить, я написал раздел CREATE TABLE Customers
перед оператором SalesOrders
CREATE.
Это всего одна проблема.Вы также создаете таблицу SalesOrders
перед таблицей Donuts
и пытаетесь добавить ограничение FOREIGN KEY
.
Наконец, у вас нет записи в таблице Donuts
, поэтому я создалJelly Donut
для вас:)
Код SQLFiddle, приведенный ниже для полноты.
CREATE TABLE customers (
customer_id INT(10) NOT NULL AUTO_INCREMENT,
customer_name VARCHAR(100) NOT NULL,
PRIMARY KEY (customer_id)
);
CREATE TABLE donuts (
donut_id INT(10) NOT NULL AUTO_INCREMENT,
name VARCHAR(30),
description VARCHAR(50),
unit_price DECIMAL(8,3),
PRIMARY KEY (donut_id) );
INSERT INTO donuts (donut_id,name,description,unit_price)
VALUES (1,"Jelly Donut","Delicious Donut filled with Raspberry Jelly inside",1.99);
CREATE TABLE salesorders (
donut_order_id INT(10) NOT NULL AUTO_INCREMENT,
customer_id INT, date DATETIME,
special_handling_note TEXT,
PRIMARY KEY (donut_order_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
INSERT INTO salesorders ( donut_order_id,date,special_handling_note )
VALUES( 0000001,"2018-04-22","Please include plates and napkins" );
CREATE TABLE salesorderslineitem (
donut_order_id INT(10) NOT NULL,
donut_id INT(10) NOT NULL, qty INT(10) NOT NULL,
PRIMARY KEY (donut_order_id, donut_id),
FOREIGN KEY (donut_order_id)
REFERENCES salesorders(donut_order_id),
FOREIGN KEY (donut_id) REFERENCES donuts(donut_id) );
INSERT INTO salesorderslineitem (donut_order_id,donut_id, qty) VALUES (0000001,1, 12);