2017-10-23 1 views
-1

Ich habe Probleme, meine SQL-Tabelle zu arbeiten. Es gibt mir einen Fehler, dass es Tabellen nicht wegen Erlaubnis oder nicht vorhanden fallen lassen kann. Und es sagt mir, dass es auch eine ungültige Tabelle gibt.Fehler mit meiner SQL-Datenbank

Ich habe derzeit:

drop table Orders 
drop table Item 
drop table Supplier 
drop table Staff 
drop table Customers 
drop table Ingredient 



CREATE TABLE Supplier(
SupplierNo CHAR(7) PRIMARY KEY, 
SupplierName CHAR(25), 
SupplierAddress VARCHAR(25), 
SupplierPhone CHAR(10), 
SupplierContactPerson CHAR (35) 
) 
go 


CREATE TABLE Item (
ItemNo  CHAR(7)  PRIMARY KEY, 
ItemName CHAR(10), 
ItemType CHAR(10), 
Price  DEC(3,2), 
IngredientCode CHAR (5), 

FOREIGN KEY(IngredientCode) REFERENCES Ingredient(IngredientCode) 
) 
go 

CREATE TABLE Staff (
EmployeeID CHAR(3) PRIMARY KEY, 
FirstName CHAR(10), 
LastName CHAR(10), 
PostalAddress VARCHAR(MAX), 
ContactNumber CHAR (10), 
RateOfPay  MONEY, 
EmployementStatus CHAR(25) 
) 

CREATE TABLE Customers (
CustomerID CHAR(4) PRIMARY KEY, 
CustomerFN CHAR(25), 
CustomerLN CHAR(25), 
CustomerPhN CHAR(11), 
CAddress VARCHAR (25) 
) 
go 

CREATE TABLE Ingredient(
IngredientCode CHAR (5) PRIMARY KEY, 
IngredientName CHAR(25), 
IngredientDesc VARCHAR(max), 
CurrentStockLevel CHAR(3), 
PreviousStockLevel CHAR(3), 
SuggestedStockLevel CHAR(3), 
SupplierNo CHAR(7), 
Supplied DATE(), 

FOREIGN KEY(SupplierNo) REFERENCES Supplier(SupplierNo) 
) 

CREATE TABLE Orders(
OrderNo CHAR(7), 
OrderDate DATE(), 
CustomerNo CHAR(4) FOREIGN KEY, 
EmployeeID CHAR(3) FOREIGN KEY, 
ItemNo  CHAR(7) FOREIGN KEY, 
TypeOfOrder CHAR(10), 
TotalAmount MONEY(), 
PaymentMethod CHAR(10), 
OrderStatus CHAR(10) 

FOREIGN KEY CustomerNo, EmployeeID, ItemNo 
REFERENCES Customer(CustomerNo), Staff(EmployeeID), Item(ItemNo) 
) 

Es scheint wie ein sehr einfaches Problem zu haben, aber ich bin nicht einmal sicher, was es bedeutet, mit mir keine Erlaubnis haben oder die Tabelle nicht an allen bestehenden ...

+0

In SQL erstellen, müssen Aussagen termin sein mit ';'. Außerdem: Welches [DBMS] (https://en.wikipedia.org/wiki/DBMS) Produkt verwenden Sie? "_SQL_" ist nur eine Abfragesprache, nicht der Name eines bestimmten Datenbankprodukts. –

+0

Unabhängig davon, welches DBMS tatsächlich verwendet wird: 'CustomerNo CHAR (4) FOREIGN KEY,' ist falsch. Sie müssen das _target_ dieses Fremdschlüssels angeben, z. 'CustomerNo CHAR (4) verweist auf Kunden'. Bitte lesen Sie das Handbuch Ihres DBMS für die korrekte Syntax –

+0

So etwas wie das? CREATE TABLE Orders( OrderNo CHAR(7), OrderDate DATE(), CustomerNo CHAR(4) FOREIGN KEY REFERENCES Customer(CustomerNo), EmployeeID CHAR(3) FOREIGN KEY REFERENCES Staff(EmployeeID), ItemNo \t \t CHAR(7) FOREIGN KEY REFERENCES Item(ItemNo), TypeOfOrder CHAR(10), TotalAmount MONEY(), PaymentMethod CHAR(10), OrderStatus CHAR(10) straysheep17

Antwort

0

Sie Einschränkung erstellen, bevor Tabelle Ingredient

FOREIGN KEY (IngredientCode) LITERATUR Bestandteil (IngredientCode)