sqlfiddle

Cannot add foreign key SQL fiddle


Im new to sql, I'm having issues with the foreign key in my table. If any can point out the error, please do, I have no idea what it is.enter image description here

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));

Solution

  • Your FOREIGNKEY syntax is wrong. This should work:

    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)
    );