Невозможно добавить внешний ключ SQL скрипта
Я новичок в SQL, у меня проблемы с внешним ключом в моей таблице. Если кто-то может указать на ошибку, пожалуйста, я не знаю, что это такое. введите описание изображения здесь
CREATE TABLE donut(
donutId int(5) NOT NULL,
name VARCHAR(20),
descriptioin VARCHAR(60),
price DECIMAL(8,3),
PRIMARY KEY (donutId)
);
CREATE TABLE customer(
customerid INT(5)NOT NULL,
firstname VARCHAR(30),
lastname VARCHAR(30),
addres VARCHAR(100),
apt VARCHAR(20),
city VARCHAR(30),
state VARCHAR(20),
zip VARCHAR(8),
homephone VARCHAR(15),
cellphone VARCHAR(15),
otherphone VARCHAR(15),
PRIMARY KEY (customerid) );
CREATE TABLE customer_order_donut(
orderid int(10) NOT NULL,
customerid int(10),
donutId int(10),
orderdate datetime,
donutqty INT(5),
specialhandling TEXT,
PRIMARY KEY (orderid)
customerid int FOREIGN KEY REFERENCES customer(customerid),
donutId int FOREIGN KEY REFERENCES donut(donutId));
2 ответа
Решение
Ваш синтаксис FOREIGNKEY неверен. Это должно работать:
CREATE TABLE donut
(
donutid INT(5) NOT NULL,
name VARCHAR(20),
descriptioin VARCHAR(60),
price DECIMAL(8,3),
PRIMARY KEY (donutid)
);
CREATE TABLE customer
(
customerid INT(5)NOT NULL,
firstname VARCHAR(30),
lastname VARCHAR(30),
addres VARCHAR(100),
apt VARCHAR(20),
city VARCHAR(30),
state VARCHAR(20),
zip VARCHAR(8),
homephone VARCHAR(15),
cellphone VARCHAR(15),
otherphone VARCHAR(15),
PRIMARY KEY (customerid)
);
CREATE TABLE customer_order_donut
(
orderid INT(10) NOT NULL,
customerid INT(10),
donutid INT(10),
orderdate DATETIME,
donutqty INT(5),
specialhandling TEXT,
PRIMARY KEY (orderid),
FOREIGN KEY (customerid) REFERENCES customer(customerid),
FOREIGN KEY (donutid) REFERENCES donut(donutid)
);
Проверьте синтаксис ограничений FOREIGN KEY (и добавьте запятую после PRIMARY KEY):
CREATE TABLE customer_order_donut(
orderid int(10) NOT NULL,
customerid int(10),
donutId int(10),
orderdate datetime,
donutqty INT(5),
specialhandling TEXT,
PRIMARY KEY (orderid),
FOREIGN KEY (customerid) REFERENCES customer(customerid),
FOREIGN KEY (donutid) REFERENCES donut(donutId)
);