2011-09-27 7 views
-2

J'ai ce SQL (pour MySQL):N: M Relation Erreur de syntaxe dans le code

create table apartmentcaretakers 
(
apartmentID int, 
caretakerID int, 
PRIMARY KEY (apartmentID, caretakerID), 
FOREIGN KEY (apartmentID) REFERENCES apartments(apartmentID), 
FOREIGN KEY (caretakerID) REFERENCES caretakers(caretakerID) 
)engine = innodb; 

L'erreur que je chat: erreur de syntaxe SQL près de « références appartements (apartmentID), des références caretakerID clés étrangères gardiens '

Ceci est correctement une erreur mineure de ma part, mais quelqu'un pourrait-il le signaler?

EDIT: Après un certain codage et réexécution, l'erreur est 1064. Ce que je peux comprendre pourquoi cela n'a pas vraiment aidé, car c'est une erreur à large spectre.

+0

Ce problème est résolu elle-même, après que je suis allé pour une plongée à travers les vagues sans fin de mon cerveau, et a découvert que quelqu'un avait volé mes parenthèses :) Mais de toute façon pour thx vous aidez ... – Yilmas

Répondre

0

A travaillé pour moi aussi.

Assurez-vous que vos tables référencées utilisent également le moteur INNODB. Utilisez la requête suivante pour vérifier que: SHOW TABLE STATUS WHERE Name = 'xxx'

mysql> CREATE TABLE apartments (
    -> apartmentID int PRIMARY KEY NOT NULL) ENGINE = innodb; 
Query OK, 0 rows affected (0.01 sec) 

mysql> CREATE TABLE caretakers (
    -> caretakerID int PRIMARY KEY NOT NULL) ENGINE = innodb; 
Query OK, 0 rows affected (0.02 sec) 

mysql> CREATE TABLE apartmentcaretakers (
    -> apartmentID int, 
    -> caretakerID int, 
    -> PRIMARY KEY (apartmentID, caretakerID), 
    -> FOREIGN KEY ac_fk_apartments_id (apartmentID) REFERENCES apartments (apartmentID), 
    -> FOREIGN KEY ac_fk_caretakers_id(caretakerID) REFERENCES caretakers (caretakerID) 
    ->) ENGINE = innodb; 

Query OK, 0 rows affected (0.02 sec) 
+0

aucun changement dans l'erreur ... encore 1064 ... – Yilmas

+0

Hmm. Vous pouvez donc créer les deux premières tables ("appartements" et "carettakers")? Et ils ont le moteur INNODB? 'mysql> SHOW ENGINES' liste InnoDB correctement? Juste deviner maintenant :) Pouvez-vous fournir la sortie "DESC" de vos deux tables référencées? –

Questions connexes