2017-01-05 1 views
-1

So versuche ich eine Datenbank mit MYSQL zu erstellen und es scheint nicht die Tabellen zu mysql auf Terminal den folgenden Fehler hinzuzufügen Codes zeigen:FEHLER 1064 (42000): richtige Syntax zu verwenden in der Nähe von ')' in Zeile 10

**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 ')' at line 10 
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 ')' at line 9 
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 '(2), 
PRIMARY KEY (guest_id), 
FOREIGN KEY (res_nr) 
)' at line 10 
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key 
mysql> SHOW TABLES; 
+---------------------------------+ 
| Tables_in_xxxxxx_coursework_1 | 
+---------------------------------+ 
| Reservations     | 
| Room       | 
+---------------------------------+ 
2 rows in set (0.00 sec)** 

Aber dieser Code arbeitete früher, weil, wenn ich schreibe "SHOW TABLES;" Es zeigt die ersten beiden Tabellen Zimmer und Reservierungen so kann der Fehler nicht in den ersten beiden Tabellen sein.

CREATE TABLE Room (
    id INT AUTO_INCREMENT, 
    room_id INT (3), 
    room_type VARCHAR (15), 
    guest_id INT (8), 
    res_nr INT (6), 
    price DECIMAL (6,2) unsigned, 
    extras_id INT (2), 
    PRIMARY KEY (id) 
); 

CREATE TABLE Reservations (
    id INT AUTO_INCREMENT, 
    res_no INT (6), 
    guest_id INT (8), 
    hotel_branch INT (5), 
    room_genre VARCHAR (12), 
    extras_id INT (2), 
    room_id int (3), 
    PRIMARY KEY (id), 
    FOREIGN KEY (room_id) 
    REFERENCES Room (id) 
); 

CREATE TABLE Employees (
    id INT AUTO_INCREMENT, 
    employee_id INT (6), 
    ni_id INT (9), 
    first_name VARCHAR (25), 
    surname VARCHAR (25), 
    address VARCHAR (100), 
    PRIMARY KEY (id), 
    FOREIGN KEY (first_name) 
); 

CREATE TABLE Hotel (
    id INT AUTO_INCREMENT, 
    hotel_branch INT (5), 
    employee_id INT (6), 
    hotel_name CHAR (20), 
    town VARCHAR(20), 
    num_rooms INT (3), 
    PRIMARY KEY (id), 
); 

CREATE TABLE Guest (
    id INT AUTO_INCREMENT, 
    guest_id INT (8), 
    res_nr INT(6), 
    first_name CHAR (25), 
    surname CHAR (25), 
    phone_no INT(12), 
    email VARCHAR (25), 
    room_id INT(3), 
    extras_id(2), 
    PRIMARY KEY (guest_id) 
    FOREIGN KEY (res_nr) 
); 

CREATE TABLE Bill (
    id INT AUTO_INCREMENT, 
    invoice_id INT (9), 
    guest_id INT (8), 
    room_charge DECIMAL (8,2) unsigned, 
    extra_charge DECIMAL (6,2) unsigned, 
    PRIMARY KEY (invoice_id), 
    FOREIGN KEY (guest_id) 
    REFERENCES Guest (id) 
); 

Antwort

0

Sie sind Bau falsche Tabellenstruktur

 CREATE TABLE Room (
     id INT AUTO_INCREMENT, 
     room_id INT (3), 
     room_type VARCHAR (15), 
     guest_id INT (8), 
     res_nr INT (6), 
     price DECIMAL (6,2) unsigned, 
     extras_id INT (2), 
     PRIMARY KEY (id) 
     ); 

     CREATE TABLE Guest ( 
     guest_id INT (8), 
     res_nr INT(6), 
     first_name CHAR (25), 
     surname CHAR (25), 
     phone_no INT(12), 
     email VARCHAR (25), 
     room_id INT(3), 
     extras_id int (2), 
     PRIMARY KEY (guest_id), 
     CONSTRAINT fk_res FOREIGN KEY (res_nr) REFERENCES Room (id)) 

Wie Sie oben I FK überprüfen res_nr mit id Platz als ein Primärschlüssel Raumtabelle erstellt haben. Sie haben versucht, einen ganzzahligen Wert zu referenzieren, der nicht funktioniert. Versuchen Sie, mehr über Fk zu erfahren. []

Verwandte Themen