2017-11-08 4 views
-1

Ich bin neu in SQL und versuche, eine DB für ein Theaterbuchungssystem zu erstellen. Die Erstellung der folgenden Tabelle führt jedoch zu einem Fehler.Fremdschlüssel, der auf mehrere Tabellenfehler verweist

CREATE TABLE Booking (
    Email VARCHAR(255) NOT NULL, 
    PerfDate DATE, 
    PerfTime TIME, 
    RowNumber CHAR(3), 
    FOREIGN KEY (PerfDate, PerfTime) REFERENCES Performance (PerfDate, PerfTime), 
    FOREIGN KEY RowNumber REFERENCES Seat (RowNumber), 
    ); 

INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-01',TIME '19:00:00','Z18'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-01',TIME '19:00:00','Z19'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-01',TIME '19:00:00','Z16'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-05',TIME '13:00:00','U20'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-05',TIME '13:00:00','U19'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-05',TIME '13:00:00','X13'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-05',TIME '13:00:00','X14'); 
INSERT INTO Booking VALUES ('[email protected]',DATE '2017-11-05',TIME '13:00:00','Z19'); 


ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES Seat (RowNumber), 
)' at line 7 

Bin ich FKs falsch eingestellt?

+1

die "" in "BEZUG Seat (RowNumber)" ist zu viel ... der Fehler ist eher klar, überprüfen Sie auch die Syntax einer solchen Aussage hier: https://www.w3schools.com/sql/sql_foreignkey.asp BTW: sollten Sie nicht einen Primärschlüssel hinzufügen? – Hansa

+0

Ich habe versucht, das Komma zu entfernen und den gleichen Fehler zu erhalten. Entsprechend dem uns gegebenen relationalen Schema sollte der Primärschlüssel auch PerfDate, PerfTime, RowNumber sein. Kann ich den FK definieren mit: FOREIGN KEY (PerfDate, PerfTime, RowNumber) REFERENZEN Leistung (PerfDate, PerfTime), Sitz (RowNumber), in einer einzigen Anweisung statt einer Anweisung? Es soll ein einziger zusammengesetzter Fremdschlüssel sein. –

+0

hmm vielleicht die() um den fk-name sind erforderlich? "FREMDSCHLÜSSEL (RowNumber) REFERENZEN" scheint wie der einzige Unterschied im Vergleich zu dieser Antwort: https://stackoverflow.com/questions/9114274/how-do-i-create-a-table-with-a-two-primary -keys-of-two-foreign-keys – Hansa

Antwort

1

Bitte entfernen Sie das Zeichen, [Komma] in der Zeile FOREIGN KEY RowNumber BEZUG Seat (RowNumber),

+0

Ich habe das entfernt, wie du vorgeschlagen hast aber trotzdem einen Fehler bekommst. –

Verwandte Themen